2016-08-15 1 views
0

Ich versuche, einige Daten in eine PHP-Datei mit der jQuery $ .ajax-Funktion zu senden und eine Antwort zurückzugeben. Ich habe ähnliche Dinge in der Vergangenheit gemacht, also bin ich mir nicht sicher, wo ich rutschen werde.Wenn keine Daten aus AJAX zurückgegeben werden, werden keine Versprechungen ausgelöst.

Ich habe DONE, FAIL, THEN angehangen und IMMER verspricht, die $ .ajax-Funktion mit jeweils Warnungen in ihnen, und keine Warnungen werden ausgelöst. Hier ist das relevante JavaScript.

In meiner PHP-Datei werden die JSON-Daten analysiert und schließlich wird eine Zeichenfolge in die Datenbank eingefügt. Die Zeichenfolge wird ungefähr 75% der Zeit richtig in die Datenbank geschrieben. Ich habe noch nie etwas in der LOG Tabelle gesehen, also ist das vielleicht ein Problem für einen anderen Beitrag.

$outp = array(); 
     $sql = (string)('INSERT INTO PBP_O (POST_DATA) values ("' . $str . '")'); 
     mysqli_query($conn, $sql); 


     //ERROR Logging 
     $err = mysqli_error($conn); 

$sql = (string)('INSERT INTO LOG (ERROR) values ("Hi")'); 
mysqli_query($conn, $sql); 


     if($err != ""){ 
      mysqli_close($conn); 

      echo "Sorry"; 
     } 
     else{ 

$sql = (string)('INSERT INTO LOG (ERROR) values ("Way down here")'); 
mysqli_query($conn, $sql); 

      $result = mysqli_query($conn, "SELECT LAST_INSERT_ID() LID"); 

      if (mysqli_num_rows($result) > 0) { 
       while($row = mysqli_fetch_assoc($result)) { 
        $outp["LID"] = $row["LID"]; 
       } 
      } else { 
       echo "Sorry"; 
      } 
     } 

$sql = (string)('INSERT INTO LOG (ERROR) values ("'.$outp["LID"].'")'); 
mysqli_query($conn, $sql); 

     mysqli_close($conn); 
     echo json_encode($outp); 

Wenn jemand eine Vorstellung davon hat, was ich falsch mache, wäre ich sehr dankbar. Bitte lassen Sie mich wissen, wenn es andere Teile des Codes gibt, die hilfreich sein könnten. Ich habe überprüft, dass der gesendete JSON bereits gültig ist.

EDIT
Könnte $ .post() möglicherweise für mich alles tun, dass meine aktuelle AJAX würde das nicht? Ich sehe nicht, warum es so wäre, aber ich sehe den Bug auch nicht in meinem Code.



EDIT 2

ich meine PHP-Code aktualisiert haben, was es jetzt ist (die bearbeiteten Teile sind am weitesten links). Ich habe dem AJAX auch die SUCCESS- und ERROR-Callbacks hinzugefügt. Im Grunde verwende ich nur meine LOG-Tabelle, um sicherzustellen, dass ich dort bin, wo ich sein sollte. Jede einzelne Einfügung in diesem PHP-Code fügt erfolgreich ein, einschließlich der Daten, die ich zurückmelde, um vom AJAX abgefangen zu werden. Was ich normalerweise meinen würde, dass es bis zum Ende läuft.

Seitennotiz, verwende ich Visual Studio. Wenn ich IE für das Debugging verwendete, würden die Warnungen in allen AJAX-Rückrufen nicht ausgelöst. Ich wechselte zu Chrome, und sie konnten gefangen werden und feuerten.

Im Chrome> Network Tool gab es zwei Einträge. Zunächst ein Anruf an processing.php, die rot war. Es gab einen zweiten Anruf an index.html? YearsGroup1 = 2016 & yearsGroup2 = 2016 ..., gefolgt von allen Variablen auf der Seite im Stil einer GET-Anfrage [die ich jetzt realisiere, ist nur die Seite neu zu laden nach SUBMIT].

Schließlich, wenn ich err im AJAX geprüft -> ERROR Rückruf, ich sah:

Object {readyState: 0, responseJSON: undefined, status: 0, statusText: "error"} 

ich nicht ganz sicher bin, wo man von hier geht.

+1

Vielleicht brauchen Sie nur 'Erfolg: Funktion (Daten) { Alert ('Erfolg' + Daten); } ' – FreezY

+0

@FreezY Sorry, kein Glück damit. Ich schätze den Input jedoch. – mju516

+0

Du wirst mir hier helfen müssen. Was genau funktioniert nicht wie erwartet? – WillardSolutions

Antwort

0

So welchen Gründen auch immer, wenn ich meinen Code über in einen anderen Ordner übertragen, ein non-breaking Warnung gestartet erscheinen:

Warnung: Unknown Property Zugang ist noch nicht erlaubt in Unbekannt on line

An diesem Punkt legte ich meinen Kopf durch meinen Monitor. PSA: Seien Sie kein Idiot wie ich, überprüfen Sie immer Ihre PHP 15 zusätzliche Male für Fehler.

Ich entschuldige mich bei allen, die sich dazu geäußert haben, dass Sie Ihre Zeit mit meiner allgemeinen Inkompetenz verschwendet haben. Vielen Dank noch einmal für Ihre Hilfe.

Verwandte Themen