2016-05-04 14 views
0

Ich habe ein Formular, das ich an eine PHP-Datei senden, die PHP-Datei wird prüfen, ob der Datensatz existiert oder nicht. Wenn es existiert, wird es "bereits vorhanden" wiedergeben. In meinem Ajax "Erfolg" sieht es das "Bereits vorhanden", aber wenn ich eine Bedingung stelle, funktioniert es nicht. Zum Beispiel unter Erfolg in meiner Ajax-Funktion stellte ich die folgendenjQuery Ajax Erfolg übermitteln Bedingung Problem

$.ajax({ 
    type: "GET", 
    data: $('#minifrm').serialize(), 
    url: "CRUD/myfile.php?check=" + para + "&freq=" + freq + "&expire=" + expire, 
    success: function (status) { 
     if (status.success == false) { 
      alert("Your details we not saved"); 
     } else { 
      var checkstatus = status.toString(); 

      if (checkstatus === 'Already Exists') 
      { 
       alert("You are here"); 
      } 
      if (checkstatus === '') 
      { 
       alert("There is nothing"); 
      } 
     } 
    } 
}); 

Derzeit wird es echo „existiert bereits“ und alarmiert „Sie sind hier“, aber wenn es nicht vorhanden ist alarmieren nicht „Es gibt nichts“ .

+0

Was geben Sie von der PHP-Datei zurück? –

+2

Sie setzen den Wert hier checkstatus = 'Existiert bereits' make it checkstatus == 'Besteht bereits' –

+0

Sicher, wenn 'status.success' false ist, würde es den' failed' Callback aufrufen, nicht den 'success' Callback, right ? – evolutionxbox

Antwort

2

Verwendung doppelt gleich == statt einzelner = zum Vergleichen von zwei Variable wie folgt aus:

if(checkstatus == 'Already Exists') 
    { 
    alert("You are here"); 
    } 
+2

Besser noch, benutze dreifache Gleichheit' === ', so kann es keine Frage über truthy/falsy Werte geben. – evolutionxbox

+0

Ja richtig, wir können auch 'trim()' verwenden, um Leerzeichen in der Ergebnisvariablen zu entfernen. Irgendwann werden Whitespaces angehängt, während wir eine Antwort vom Server bekommen. –

+0

Die dreifache gleiche funktioniert nicht – Taps101

0

Sie gleich verwendet Single = bedeutet es, diesen Wert in der Variablen auf diese Weise vergeben werden Sie nicht ausgegeben gewünscht erhalten Was in deinem Fall passiert, wenn der Code ausgeführt wird, wenn die Bedingung ausgeführt wird, wird er in checkstatus-Variable "bereits vorhanden" zuweisen. So verwendet Use doppelt gleich ==. Schreibe deinen Code wie unten beschrieben.

if (checkstatus == 'Already Exists') 
      { 
       alert("You are here"); 
      } 
      if (checkstatus == 0) 
      { 
       alert("There is nothing"); 
      } 
+0

Aus irgendeinem Grund wird es "bereits vorhanden" sehen, aber wenn ich checkstatus will doesn geh nicht durch. – Taps101