2017-06-14 3 views
0

Ich habe ein Problem mit der Kommunikation zwischen AJAX und PHP. Ich habe bereits alle diese Code-Stücke aus verwandten Fragen und Antworten versucht, aber nichts hat funktioniert. Dieser Code sollte eine JSON-Zeichenfolge aus einer PHP-Datei auf demselben Server empfangen und die Werte im HTML-Bereich anzeigen.Wert kann nicht von PHP an AJAX übergeben werden

$(document).ready(function(){ 
    setInterval(ajaxcall, 1000); 
}); 

function ajaxcall(){ 
var data = $('#signup_form').serialize(); 

    $.ajax({ 
     type: "GET", 
     url: "test.php", 
     data: data, 
     dataType: 'json', 
     success: function (data) { 
      window.console.log("Success"); 
      document.getElementById("count").innerHTML = $('#time').html(data.time); 
    },error: function alert(){"error";} 
});} 

Wenn ich das Skript in meinem Browser (mit Debug-Modus) ausführen, passiert nichts. Ich nehme an, dass dies ein Problem mit der "Erfolgsmethode" impliziert.

Hier ist ein Teil meiner PHP-Code (zum Testen):

for($i = 0; $i < 50; $i++){ 
    sleep(1); 
    return_json($argv[1]); 
} 

//return all values for html/javascript 
function return_json($a){ 
    $json = array('time' => $a); 
    echo json_encode($json); 
} 

ich einige von Ihnen hoffe ich :)

+1

Hat ctually der Ajax-Aufruf etwas zurückgeben? Verwenden Sie firebug oder etwas ähnliches, um zu überprüfen, dass hwat Ihr Ajaxanruf – Naruto

+0

mit der "window.console" Methode zurückbringt, ich sollte in der Lage sein, jede Sekunde etwas zu sehen, aber nichts wird in die Konsole geschrieben. – Slice18

+1

wo haben Sie die Variable von $ _GET eingerichtet? $ argv wird für cli verwendet Ich denke ... für ajax verwenden superglobal $ _GET –

Antwort

0

helfen können Sie den Inhaltstyp auf Ihre Antwort-Header hinzufügen sollte:

//this line 
header('Content-type: application/json'); 

for($i = 0; $i < 50; $i++){ 
    sleep(1); 
    return_json($argv[1]); 
} 

//return all values for html/javascript 
function return_json($a){ 
    $json = array('time' => $a); 
    echo json_encode($json); 
} 

Literaturhinweise und eine nähere Erläuterung hier: j Query $.ajax request of dataType json will not retrieve data from PHP script

0

Wird die Funktion ajaxcall() wirklich aufgerufen? Versuchen Sie, einen console.log Anruf an seinem Anfang an, zB

function ajaxcall(){ 
    var data = $('#signup_form').serialize(); 
    console.log(' form data = %o', data) 

    //... 

Es ist ein weiteres mögliches Problem der Funktion error: function alert(){"error";} tut nichts sichtbar. Wenn das Server-Skript einen Fehler zurückgibt, wird in diesem Fall nichts angezeigt.

ändert es so etwas wie

error: function(){ alert("error"); }

Verwandte Themen