2016-08-01 11 views
-1

I verwenden $.post Formdaten als ein Array aus Objektliterale zu einer process.php

$('#form').submit(function(e){ 
     var my_result = JSON.stringify(array);// array is the array where I store my object literals. It contains only object literals 
     alert(my_result); 
     $.post('process.php', my_result, function(answer) { 
      alert('success'); 
     }) 
     .fail(function() { 
      alert('failure'); 
     }); 

    }); 

wie folgt hergestellt zu senden. Die Daten werden gesendet, aber ich weiß nicht, wie ich von der Serverseite auf die Daten zugreifen und sie für die Speicherung in einer Datenbank entpacken kann. Hat jemand eine Idee, wie man das macht? Ich habe den vorherigen Post gelesen, aber sie haben mir überhaupt nicht geholfen, stattdessen wurde ich mehr verwirrt.

+0

Vorsicht, eine Form verursachen eine Umleitung/Aktualisierung der aktuellen Webseite abhängig form action-Attribut submiting. Dies führt dazu, dass die Ajax-Anfrage vom Client abgebrochen wird und der Server die Anfrage nicht bearbeiten kann. Erstens sollten Sie dieses Verhalten verhindern, wenn Sie sicher sein möchten, dass Ihre Anfrage genügend Zeit zum Abschließen hat. Also benutze 'e.preventDefault()'. Um auf der Seite des POST-Variablenservers zu arbeiten, gibt es bereits tausende von verfügbaren Tutos im Netz. –

+0

Der Datenparameter für ['$ .post'] (https://api.jquery.com/jquery.post/) kann keine JSON-Zeichenfolge sein, sondern muss eine Abfragezeichenfolge oder ein Objekt sein. – 4castle

+0

Ich habe e.preventDefault() entfernt, weil die selbe Schaltfläche die gesendeten Daten erhalten und in einer Datenbank speichern muss, aber wenn ich e.preventDefault() benutze, wird das PHP-Skript nicht ausgeführt, also wusste ich nicht, was ich sonst tun sollte. – princesse

Antwort

1

können Sie auf die Daten zugreifen using the $_POST global:

$server_side_my_result_var = $_POST['my_result']; 
+0

Dies ist, was ich bekomme "Hinweis: Undefinierter Index: my_result in C: \ wampp \ process.php in Zeile 11" – princesse

+0

Können Sie protokollieren, was $ _POST Ihnen geben? – Sergeon

+0

Auch A. Wolff stimmt in seinem Kommentar zu preventDefault(). Sind Sie sicher, dass Sie das PHP-Skript asynchron aufrufen und die POST-Methode verwenden? Wenn Sie den preventDefault() - Aufruf überspringen, könnte es sein, dass Sie Ihr Formular synchron über eine einfache GET-Anforderung aufrufen. Wenn Sie auf die Schaltfläche "Senden" klicken, wird die Browserseite neu geladen? – Sergeon

Verwandte Themen