1

我正在尝试这样做http://web.enavu.com/tutorials/checking-username-availability-with-ajax-using-jquery/

在用户填写某些表格时检查某些 id 的可用性,但我使用的是 postgresql 而不是 mysql ......我不知道我做错了什么,但我认为我的 php 文件有问题,它必须是一个我看不到的小错误,因为我试图从中发出警报并且没有任何反应,即使它可用,我也总是得到“instituto is not avaiable”(我试图从退货中更改订单1在 php 文件中设置为 0,反之亦然),仍然是相同的响应。好像php什么也没做。

如果你能帮助我,我将非常感激。这是我的代码:

HTML

<input id="nombre_insti" class="widearea" type="text" name="nombre"> 
        </div>
        <div id='avaliability'>   </div>

JS

$(document).ready(function() {

    var checking_html = 'Checking...';

    $('#nombre_insti').change(function(){
            $('#avaliability').html(checking_html);
            check_availability();
    });
});


function check_availability(){

    //get the instituto
    var instituto = $('#nombre_insti').val();

    //use ajax to run the check
    $.post("check.php", { instituto: instituto },
        function(result){
            //if the result is 1
            if(result == 1){
                //show that the instituto is available
                $('#avaliability').html(instituto + ' is Available');
            }else{
                //show that the instituto is NOT available
                $('#avaliability').html(instituto + ' is not Available');
            }
    });

}

PHP

<?php
    $nombre_insti=$_POST['nombre_insti'];
    $result = pg_query("SELECT nombre_institucion 
                        FROM instituciones
                        WHERE
                        nombre_institucion='$nombre_insti'");
    <script type="text/javascript">alert("This alert is not showing");</script>

    if(pg_num_rows($result)==0){
        echo 0;
        return 0;
    }else{
        echo 1;
        return 1;
    }
}?>
4

3 回答 3

1

尝试这个:

$nombre_insti=$_POST['instituto'];

并删除 PHP 脚本中的 js 代码

于 2013-05-24T14:42:34.227 回答
1

如果你没有得到响应,那是因为你有一个致命的 PHP 错误并且你已经display_errors关闭了。

错误的原因在这里:

<script type="text/javascript">alert("This alert is not showing");</script>

您的 PHP 中间有 HTML。

您可以通过使用echo或关闭 HTML 周围的 PHP 标记来更正它。

echo '<script type="text/javascript">alert("This alert is not showing");</script>';

或者

?>
    <script type="text/javascript">alert("This alert is not showing");</script>
<?php
于 2013-05-24T14:43:23.303 回答
1

您可以使用验证插件的远程方法

var rp = "<?php echo base_path; ?>";
var validator = $("#registerForm").validate({
    rules: {
        "firstname" : {
            required : true                    
        }, 
        "lastname" : {
            required : true                    
        },
        "email" : {
            required : true,
            email : true, 
            remote: rp + 'user/emailExists'
        },
        "username" : {
            required : true,
            remote: rp + 'user/usernameExists'          
        }
    },
    messages: {
        "username" : {
                remote : jQuery.format("username not Available")
           },
        "email" : {
            remote : jQuery.format("email not Available")
        }
    }
});
于 2013-05-24T17:02:25.260 回答