这里是HTML部分代码:
<div role="main" class="ui-content"> <form method="post" action="php/login.php" id="form" name="form"> <ul> <input id="user" type="text" name="user" value="" placeholder="请输入用户名" /> <br> <input id="password" name="password" type="password" value="" placeholder="请输入密码"/> <br> <a id="btn1" type="submit" href="#index3" data-role="button" data-icon="user" style="width:30%;float:left">登录</a> <a href="#index2" data-role="button" data-icon="plus" style="width:30%;float:right">注册</a> <li id="confirm"></li> </ul> </div>
下面是Jquery Ajax代码:
$(document).ready(function(){ $("#form").submit(function(){ login(); return false; }); }); function login(){ var user = $("#user").val(); var password = $("#password").val(); if (user == ""){ $("#confirm").text("请输入登录用户名"); $("user").focus(); return false; } if(password == ""){ $("#confirm").text("请输入登录密码"); $("#password").focus(); return false;aaaaa } $.ajax({ type: "POST", url: "php/login.php", dataType: "json", data: {"user" : "user", "password": "password"}, beforeSend: function(){ $("confirm").text("登录中,请稍候"); }, success: function(msg){ if(msg == "successful"){ $("#confirm").text("登录成功,欢迎" + user + "回来!正在进入你的空间"); }else { $("#confirm").text("没有此用户或者密码不正确!"); } } }); };最后是PHP的代码:
<?php include_once('db.php'); if(isset($_SESSION['user'])){ echo json_encode(array('result'=>'successful')); return; } $user=$_GET['user']; $password=$_GET['password']; if($user==""){ echo json_encode(array('result'=>'failed','message'=>'Username or password wrong')); return; } if($password==""){ echo json_encode(array('result'=>'failed','message'=>'Username or password wrong')); return; } $link = new mysqli('localhost', $dbuser, $dbpass, $dbname); if ($link->connect_error) { die("Connection failed: " . $link->connect_error); } $sql = "SELECT * FROM `user` WHERE name= '".$user."' and password= '".$password."'"; $result = $link->query($sql); if ($result->num_rows > 0) { $details = $result->fetch_assoc(); $_SESSION['user'] = $details['name']; echo json_encode(array('result'=>'successful')); return; }else { echo json_encode(array('result'=>'failed','message'=>'Username or password wrong')); } ?>
用chrome和developer console看一下ajax请求的request、response,FF的firebug也可以。
######看到了几个问题:
0. 在submit中我都是event.preventDefault(),不知道return fasle是不是一样。
1. 多个类似的问题(下面还有一个confirm,那个测试用的“aaaaa”也可以删了)
var user = $("#user").val(); var password = $("#password").val(); if (user == ""){ $("#confirm").text("请输入登录用户名"); $("user").focus(); // -> $('#user').focus();2. 你在ajax中用POST方式,但是在服务器用的是GET方式
php或者mysql都是utf8了吗?php有没有bom值(如果有,要去除)。
要注意jQuery操作json是需要utf8的。
######把msg =="successful" 改成 msg.result =="successful"版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。