2014-09-24 5 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: ложные, DATATYPE: "текст",

Итак, ваш 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

+0

и каков текст ошибки во всплывающем окне? –

0

Я думаю, что проблема в настройках ajax, вы строите данные как есть 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

+0

Может быть, кто-то знает лучший сценарий входа? Мне просто нужна зона входа в систему с сеансом для одной мобильной страницы jqery, которую я хочу преобразовать в мобильное приложение с телефонной связью. – user3791330

+0

точно ваша проблема .. вы можете читать значения на сервере через $ _POST ["email"]? – Motoo

Смежные вопросы