php – Ajax / jquery登录表单失败
发布时间:2020-12-13 16:44:40 所属栏目:PHP教程 来源:网络整理
导读:我已经看过这1000次了.我不明白为什么它不起作用. 这是一个简单的ajax登录表单.即使凭据正确,它也会返回false. (我通过直接发布测试了ajax_login.php) Ajax功能: $(document).ready(function() {$("#submit_login").click(function() {var username = $("#u
我已经看过这1000次了.我不明白为什么它不起作用.
这是一个简单的ajax登录表单.即使凭据正确,它也会返回false. (我通过直接发布测试了ajax_login.php) Ajax功能: $(document).ready(function() { $("#submit_login").click(function() { var username = $("#username").val(); var password = $("#password").val(); $.ajax({ type: "POST",url: "scripts/ajax_login.php",data: "username=" + username + "&password=" + password,success: function(result) { if(result == '0') { $(document.location = 'index.php? page=profile&user=' + username); } else { $("#login_error").show("fast"); } } }); return false; }); }); ajax_login.php session_start(); require('../conf/config.php'); if($_POST) { $u = mysql_real_escape_string($_REQUEST['username']); $p = md5(mysql_real_escape_string($_REQUEST['password'])); $con = mysql_connect($mysql_server,$mysql_user,$mysql_password); $db = mysql_select_db($mysql_db); $query = mysql_query("SELECT * FROM users WHERE username = '$u' AND password = '$p'"); if(mysql_num_rows($query) > 0) { $sid = session_id(); $query = "UPDATE users SET sid='$sid' WHERE username='$u'"; $result = mysql_query($query); if($result) { $_SESSION['loggedin'] = $u; echo '0'; } } } 形成: <div class="login_form"> <form action="scripts/ajax_login.php" method="POST"> Login<br /><br /> Username: <br /> <input type="text" name="username" id="username" /> <br /> Password: <br /> <input type="password" name="password" id="password" /> </div> <input type="checkbox" name="remember" id="rem" value="checked"/><label for="rem">Stay logged in?</label><br /> <?php $formKey->outputKey(); ?> <input type="submit" value="Login!" name="submit" id="submit_login" /> </form> 解决方法
它总是返回false,因为$.ajax()(和其他jQuery ajax方法一样)默认情况下是异步操作的.您需要在回调中执行所有事件处理(例如,您的成功回调).
另外,我建议不要这样做:if(result ==’0′).相反,使用===. 理想情况下,您应该返回JSON,或者至少返回不是true,false,1等等.当涉及到JavaScript的布尔处理时,这四个值(和其他值)可能会很容易混淆. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |