【问题标题】:Return to previous function返回上一个功能
【发布时间】:2016-06-04 09:31:55
【问题描述】:

我正在使用 ajax 来检查是否使用了用户名。如果用户名被使用,它会向表单提交函数返回 false。我正在使用 MySQL。

index.php

$("#register-form").submit(function(){
    var un = $("#un").val();
    $.ajax({
        type: "GET",
        url: "user_check.php",
        dataType: "html",
        data: {un: un},
        success: function(data){

        }
    });
});

user_check.php

$db = mysqli_connect("localhost","root","","webcap");
$user = $_POST['un'];
$query = mysqli_query($db,"SELECT * FROM users WHERE username='$un'");
$count = mysqli_num_rows($query);
echo $count;

如果数据为 1,如何向注册表单提交函数返回 false,如果数据为 0,如何返回 true?有没有更简单的方法来做到这一点?

【问题讨论】:

  • 注意 Sql 注入!

标签: javascript php jquery mysql ajax


【解决方案1】:

使用 JSON。在 PHP 中做:

echo json_encode($count > 0);

在 Javascript 中,指定 type: 'json' 而不是 type: 'html'。那么data 将是truefalse

但是,由于 AJAX 是异步的,因此您无法从中返回值。

您需要做的是阻止.submit() 函数中的正常表单提交。然后在success:函数中,检查响应,如果成功则提交表单。

$("#register-form").submit(function(e){
    e.preventDefault();
    var un = $("#un").val();
    $.ajax({
        type: "GET",
        url: "user_check.php",
        dataType: "json",
        data: {un: un},
        success: function(data){
            if (data) {
                $("#register-form")[0].submit(); // really submit the form
            } else {
                alert("Username is taken");
            }
        }
    });
});

【讨论】:

  • @splash58 你不应该,所以我忽略了这种可能性。
【解决方案2】:

请试试这个

<script>
    $("#register-form").submit(function(){
    var un = $("#un").val();
    $.ajax({
        type: "POST",
        url: "user_check.php",
        data: {un: un},
        success: function(data){
           alert(data);
        }
    });
});
</script>

<?php 

$db = mysqli_connect("localhost","root","","webcap");
$user = $_POST['un'];
$query = mysqli_query($db,"SELECT * FROM users WHERE username='".$user."'");
$count = mysqli_num_rows($query);
echo $count;
if($count>0){echo TRUE;}
else{echo FALSE;}
?>

【讨论】:

    猜你喜欢
    • 2015-04-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多