2014-09-24 76 views
0

我试图用Jquery mobile为移动应用程序设置登录表单。我无法找到它为什么不起作用的错误。这里是我的代码Jquery mobile登录表

$(document).ready(function(){ 
     $('#loginForm').submit(function(){  
       useremail=$("#userEmail").val(); 
       password=$("#password").val(); 

      //alert(useremail + " password: " + password); 

       $.ajax({ 
       type: "POST", 
       url: "login.php", 
       data: "email="+useremail+"&password="+password, 
       success: function(data){ 
       if (data === 'true') { 
       $.mobile.pageContainer.pagecontainer("change", "#index", {transition: "slide"}); 
       } 
       else { 
        $("#error_popup").popup("open"); 
       } 
       }   
       }); 
      return false; 
     }); 
    }); 

和login.php中的文件...

include("config.php"); 

session_start(); 
$email = $_POST["email"]; 
$password = md5($_POST["password"]); 
$query = "SELECT username FROM user WHERE email LIKE '$email' AND password LIKE '$password'"; 
$res = mysqli_query($db_con, $query); 
$rows = mysqli_num_rows($res); 

echo $rows; 

if($rows == 1) 
    { 
     echo true; 
     $row = mysqli_fetch_row($res); 
     $username = $row[0]; 
     $_SESSION["username"] = $username; 
    } 
else { 
    echo false; 
    } 

我希望有人能帮助我。谢谢

回答

0

尝试添加误差函数,如果通信错误存在赶..

   error: function (xhr, ajaxOptions, thrownError) { 
       showAlert(xhr.statusText, 1); 
      } 

也可以尝试在你的Ajax请求补充一点:

异步:假, cashe:假的, 数据类型: “文本”,

所以,你requst将是:

$(document).ready(function(){ 
    $('#loginForm').submit(function(){  
      useremail=$("#userEmail").val(); 
      password=$("#password").val(); 

     //alert(useremail + " password: " + password); 

      $.ajax({ 
      type: "POST", 
      url: "login.php", 
      data: "email="+useremail+"&password="+password, 
      async: false, 
      cache: false, 
      dataType: "json", 
      success: function(data){ 
      if (data === 'true') { 
      $.mobile.pageContainer.pagecontainer("change", "#index", {transition: "slide"}); 
      } 
      else { 
       $("#error_popup").popup("open"); 
      } 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       showAlert(xhr.statusText, 1); 
      }   
      }); 
     return false; 
    }); 
}); 
+0

谢谢您的回答,但它仍然没有运行。我总是得到“error_popup”。 – user3791330 2014-09-24 15:29:50

+0

和弹出窗口中的错误文本是什么? – 2014-09-26 05:43:19

0

我认为你的问题是在阿贾克斯设置,你正在建设数据因为它是GET方法。 试着改变这个部分。

$(document).ready(function(){ 
    $('#loginForm').submit(function(){  
      useremail=$("#userEmail").val(); 
      password=$("#password").val(); 

     //alert(useremail + " password: " + password); 

      $.ajax({ 
      type: "POST", 
      url: "login.php", 
      //data: "email="+useremail+"&password="+password, 
      data: "{'email': '" + useremail+ "',"'password': '"+password+"'}", 
      success: function(data){ 
      if (data === 'true') { 
      $.mobile.pageContainer.pagecontainer("change", "#index", {transition: "slide"}); 
      } 
      else { 
       $("#error_popup").popup("open"); 
      } 
      }   
      }); 
     return false; 
    }); 
}); 

甚至更​​好

var DTO = { 'email': useremail, 'password': password}; 
var send = JSON.stringify(DTO); 

和AJAX只是把数据:发送

+0

谢谢:)但仍然是同样的问题:( – user3791330 2014-09-24 17:52:26

+0

也许有人知道一个更好的登录脚本?我只需要一个jqery手机单页的会话登录区域,我想转换成手机应用程序的手机。 – user3791330 2014-09-24 18:08:22

+0

什么是你的问题..你可以通过$ _POST [“电子邮件”]读取服务器上的值? – Motoo 2014-09-24 19:18:51