it-swarm.com.de

jQuery 'If' Anweisungsvergleich funktioniert nicht

Es fällt mir sehr schwer, etwas sehr einfaches zu tun. Hier ist der Code:

        if(data == 'success') {

            alert('foo');

        } else {

            alert(data);

        }

Ich habe es vereinfacht, aber das ist alles, was nötig ist, um zu verstehen, was los ist. Die Variable 'data' ist das Ergebnis eines Aufrufs von AJAX, falls dies einen Unterschied macht. Das Problem ist, dass es immer an die "else" -Anweisung geht und "Erfolg" warnt, was es nicht tun sollte, wenn es an "else" geht. Irgendeine Idee, was hier los ist?

BEARBEITEN: Hier ist der vollständige AJAX-Code in jQuery:

$.post("/manage_sites.php", {before:before, edit:after}, function(data){

        if(data == success) {

            alert('blah');

        } else {
            alert(data);
        }
    });

Und dann in der Antwort PHP:

...code....
$update = mysql_query("UPDATE users SET feeds = '$afterFeed' WHERE username = '$name'") or     die("Query Failed");

if($update) {

    echo  'success';  //this is the 'string' that is being given to 'data'
}
11
williamg

Sie können es auf der Clientseite mithilfe von $.trim() wie folgt beheben:

if($.trim(data) == 'success') {

Oder, ein besserer Ansatz wäre, die New-Line von der Serverseite zu entfernen, wahrscheinlich eine fehlerhafte New-Line in Ihrem PHP, irgendwo, überprüfen Sie vor oder nach dem <? ?>-Block auftauchen.

Oder beenden Sie einfach nach der Ausgabe Ihres Inhalts wie folgt:

if($update) {
  echo 'success';
  exit();
}
28
Nick Craver

Clientseitige Validierung funktioniert einwandfrei. 

$.trim() fine.

Danke, Nick. Ich habe lange gebraucht, um zu verstehen, warum es nicht funktioniert ...

0
syyu

Sie können das nachgestellte Zeichen in Ihrer Datei entfernen, wenn es sich um die letzte Zeile in der Datei handelt. Ich möchte auf die Kommentare zur ursprünglichen Ausgabe antworten, aber ich sehe nicht wie.

0
karlw