簡體   English   中英

PHP MySQL_return_rows = echos 1然后是0

[英]PHP MySQL_return_rows = echos 1 then 0

我正在為PHP處理腳本做一個AJAX帖子。 我正在檢查MySQL是否返回任何正在進行注冊的行。 我遇到的問題 - MySQL快速回顯1行然后回顯0並繼續注冊,即使存在0行。 為什么我看到1行返回,然后快速糾正自己?

$.ajax({
            type: "POST",
            data: "username="+$(this).attr('username')+"password="+$(this).attr('email')+$(this).attr('password')+$(this).attr('passconf'),
            url: "includes/register.php",
            success: function(msg)
            {   
                alert(data);
                $("#result").data($data); 
            }
        });

    });

PHP代碼:

    $res = mysql_query("SELECT * FROM users WHERE username = '".$username."'");
                    if (!$res) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}
                    $num = mysql_num_rows($res);
                    echo $num;

您的事件處理程序可能無法阻止默認操作,導致表單被提交兩次(一次通過ajax,一次通過常規瀏覽器表單提交)。 嘗試像這樣返回false:

$(login_form).click(function() {
    $.ajax({ ... });
    return false;
});

返回false阻止默認操作並停止冒泡。 如果你想要冒泡仍然適用,你也可以明確地防止這樣的默認:

$(login_form).click(function(ev) {
    ev.preventDefault();
    $.ajax({ ... });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM