2012-04-11 10 views
1

Es scheint, dass diese Art von Frage schon einige Male gestellt und beantwortet wurde, aber ich kann einfach nicht funktionieren, selbst nach stundenlangem Ausprobieren.Probleme beim Zurücksenden von PHP-Daten zu jQuery ajax call

Hier ist meine Ajax:

$.ajax({ 
type: 'POST', 
url: 'scripts/manageHomePage.php', 
//datatype: 'json', 
data: dataString, 
cache: false, 
success: function(response) { 
    //$.parseJSON(response); 

    alert('response: ' + response); 
    //alert('Got a successful return: ' + response.result); 
    //window.location.href="documents/" + response.result; 
}, 
error: function(response) { 
    alert ('There was an error creating the archive: ' + response); 
} 
}); 

Wie Sie sehen, ich habe auch dies versucht json zu verwenden zu tun. Hier ist der PHP-Code, der die Daten zurückliefert:

if ($zipArchive) { 
$log->lwrite('passing to ajax function: ' . $archiveName); 
//$return['error'] = true; 
//$return['result'] = $archiveName; 
return $archiveName; 
} else { 
$log->lwrite('Error creating zip file - not passed to form'); 
//$return['error'] = false; 
//$return['result'] = 'There was an error creating the zip file'; 
return 'error'; 
} 

Noch einmal, mehr Versuche bei json. Wie auch immer, die Variable $ archiveName, die das PHP-Skript zurückgibt, ist korrekt. Mein js-Alarm im Erfolgsparameter von $ .ajax zeigt "Antwort:"

Was mache ich falsch?

+0

versuchen, console.log Antwort statt zu alarmieren, um zu sehen, ob es sauber und gefüllt kommt. – Rooster

+0

Danke für die schnelle Antwort! Wie mache ich das? Ich benutze Aptana Eclipse für meine IDE. – marky

+0

Ich habe herausgefunden, wie es geht. Ich bekomme "undefined" auch in der Konsole. – marky

Antwort

2

Sie müssen echo eine Antwort von dieser Funktion zurück, nicht return es.

+0

Großartig! Das hat funktioniert! Aber kann mir jemand erklären, warum Echo funktioniert, aber nicht zurück? – marky

+0

ist, weil Sie Inhalt auf einem Ajax-Aufruf ausgeben müssen, gibt in diesem Fall nur die Funktion zurück. – Rooster