2016-05-10 13 views
0

Hallo Ich habe ein Skript für die Anmeldung mit Ajax-Methode erstellt Ich habe versucht, aber das funktioniert nicht für mich nicht erfolgreich bekommen können Sie mir bitte wissen lassen, warum ich nicht in der Lage bin mit diesemAjax Gesuch nicht funktioniert

function login() { 
var username = document.getElementById('username').value; 
var pass  = document.getElementById('pass').value; 

if(username == '' && pass == '') { 
    alert('Fields could not be left empty'); 
} else { 
    $.ajax({ 
     type  : "POST", 
     url  : "includes/register.php", 
     data  : "command=login&username="+username+"&password="+pass, 
     datatype : "json", 
     success : function(data) { 
      if (data.status == 200) { 
       alert('Successfull'); 
       var return_data = data.responseText; 
       document.getElementById('messagearea').innerHTML = return_data; 
      } else { 
       alert('Unsuccessful'); 
      } 
     } 
    }); 
} 
} 
zu arbeiten

sollte wachsam erfolgreich laufen, aber ich bin immer alert (‚Erfolglos‘) bedeutet dies, dass Status nicht gleich mir jemand 200

mit diesen hilft Hier ist mein pHP-Code

if(isset($_POST['command']) && $_POST['command'] == 'login') { 
    $username = $_POST['username']; 
    $pass  = $_POST['pass']; 
    $password = md5($pass); 

    $check = mysqli_query($connection, "SELECT * FROM users WHERE username = '$username'"); 
    $result = mysqli_num_rows($check); 
    if($result != 1) { 
     echo "<div class='message'>Response Successful</div>"; 
    } else { 
     echo "<div class='message'>Username/Password did not matched</div>"; 
    } 
} 
+0

Post 'register.php' Code – Apb

+0

Problem mit PHP ist, können Sie es sind? Was es gibt – guradio

+0

aktualisiert bitte die Post überprüfen –

Antwort

2

T in datatype sollte Kapital sein,

$.ajax({ 
     type: "POST", 
     url: "includes/register.php", 
     data: "command=login&username=" + username + "&password=" + pass, 
     dataType: "json", 

Gemäß dem Server-Code, Ihre Daten wie diese in den Erfolg Handler wie folgt den Code

data: "command=login&username=" + username + "&pass=" + pass, 

Änderung aussehen sollte,

document.getElementById('messagearea').innerHTML = data; 
+0

Geändert und jetzt funktioniert die Warnung nicht –

+0

überprüfen Sie die Registerkarte Netzwerk, und sehen, was von dem Server –

+0

auch zurückkommt, müssen wir den Code innerhalb des Registers zu sehen.php –

1

Wenn Sie den xhr-Anforderungsstatus überprüfen möchten, sollten Sie 3 Parameter in success function verwenden.

success : function(data,text,xhr) { 
      if (xhr.status == 200) { 
       alert('Successfull'); 
       var return_data = data; 
       document.getElementById('messagearea').innerHTML = return_data; 
      } else { 
       alert('Unsuccessful'); 
      } 
     } 

für datatype: "json"

if(isset($_POST['command']) && $_POST['command'] == 'login') { 
    $username = $_POST['username']; 
    $pass  = $_POST['pass']; 
    $password = md5($pass); 

    $check = mysqli_query($connection, "SELECT * FROM users WHERE username = '$username'"); 
    $result = mysqli_num_rows($check); 
    if($result != 1) { 
     echo json_encode("<div class='message'>Response Successful</div>"); 
    } else { 
     echo json_encode("<div class='message'>Username/Password did not matched</div>"); 
    } 
} 
+0

xhr und Text sind vars sollte ich sie erstellen oder bereits definiert haben? lass mich das überprüfen –

+0

schon definiert worden! Sie sollten durch console.log überprüfen, was sie herauskommen –

+0

Hier ist welche Antwort, die ich bekam –

0

Sie diese Lösung versuchen:

$.ajax({ 
    type: "POST", 
    url: "includes/register.php", 
    data: {command: "login", username: username, password: pwd}, 
    dataType: "json", 

nicht "pass" in Skripten jQuery verwenden Sie, weil manchmal nicht richtig funktionieren.

Tschüss! : D

+0

dataType: "JSON", wenn ich schreibe wie diese Warnung funktioniert Datentyp: "JSON", warum ist das so? –

0

Sie müssen zwei weitere Objekte in Ihrer Ajax-Erfolgsfunktion hinzufügen, die Ihnen helfen, mehr Informationen über die Anfrage zu erhalten.

$.ajax({ 
    type  : "POST", 
    url  : "register.php", 
    data  : "command=login&username="+username+"&password="+pass, 
    datatype : "json", 
    success : function(data,xhr,req) { 
     if (req.status == 200) { 
      alert('Successfull'); 
      var return_data = data.responseText; 
      document.getElementById('messagearea').innerHTML = return_data; 
     } else { 
      alert('Unsuccessful'); 
     } 
    } 
}); 

Sie müssen auch Ihre Rückgabedaten in JSON codieren, damit der Rückgabetyp Ihrer Anfrage mit JSON übereinstimmt. Wenn Sie Ihre Ajax-Anfrage über das Developer Tool baar genau betrachten, werden Sie feststellen, dass zwei weitere Objekte zurückgegeben werden, wobei Ihre Anfrage verschiedene Dinge enthält.

  1. enthält Daten
  2. Enthält Erfolg Antrag ist oder fehlgeschlagen ist.
  3. Enthält verschiedene Objekte in Array