2010-11-27 7 views
1

Iam Aufruf der Ajax-FunktionWarum dieser Wert der Variablen der return-Anweisung

function validateemp(){ 
var exists=""; 
$.ajax({ 
    url: "emp.php", 
    async: false, 
    dataType: "json", 
    data: {'param1': $("#param1").val(), 'empno': $("#empno").val()}, 
    success: function (data) { 
    exists = data.status; 
    } 
}); 
alert("exists==>"+exists); 
return exists; 
} 

Iam Nicht in der Lage zurückzukehren, um den Wert von „existiert“ nicht Rückkehr ist mit Wert .iam der Lage, den genauen Wert erhalten von „existiert "ob es wahr oder falsch ist. Aufgrund dieses Werts, der nicht wahr oder falsch zurückgibt, kann ich die Eingabeaufforderung nicht erstellen. Wenn ich explizit true oder false zurückgebe, kann iam die Eingabeaufforderung erstellen. Was iam Falsch tut

+1

Es könnte sein, dass Ihr JSON fehlerhaft ist. Stellen Sie sicher, dass Ihr JSON richtig formatiert ist. – karim79

+0

Was ist der Wert, den Sie bekommen? Was meinst du mit genauem Wert? – casablanca

+0

@karim: Wie kann ich die Funktion Above korrigieren? Wie kann ich den Wert korrekt zurückgeben? Das ist, was mein JSON produziert {"status": "false"} – Someone

Antwort

2

Wenn ich Ihre Frage und Kommentare richtig verstehe, enthält Ihre JSON-Ausgabe eine Zeichenfolge, während Sie einen Booleschen Wert zurückgeben möchten. Wenn ja, dann sollte so etwas funktionieren:

success: function (data) { 
    exists = data.status === "true"; 
} 
+1

Du schlägst mich um 1 Sekunde, war nur das Tippen :) – karim79

0

Der beste Weg Um diesen Teil des Codes zu strukturieren, würde man ein Ereignis über den Erfolg der Anfrage aufrufen und den Parameter in diesem Ereignis übergeben. Meine Vermutung ist, dass es nicht unbedingt darauf wartet, dass die AJAX-Anfrage beendet wird oder dass der Zeiger verloren geht.

Umstrukturierung wäre sowieso viel vorteilhafter.

Verwandte Themen