2016-06-19 13 views
0

Ich habe diese Funktion, um die Eingaben von einem Formular in die Datenbank zu schreiben, und ich versuche, die Daten zu vereinfachen, die durch den Ajax-Aufruf an den PHP übergeben werden. Zur Zeit habe ich diese Funktion:Ajax-Objekt vereinfachen

function writeDB(stage){ 
    var userData = $("#cacheDB").find("input").get(); 
    var ajaxData = [] 
    for (var n=0;n < userData.length; n++){ 
     item = {}; 
     item[userData[n].id] = userData[n].value; 
     ajaxData.push(item); 
    } 

    $.ajax({ 
     url: "x.php", 
     data: {ajaxData}, 
    }); 
} 

Welche dieses Objekt sendet:

http://url.php?ajaxData[0][pageid]=1&ajaxData[1][input1]=John&ajaxData[2][input2]=Doe 

Ich mag würde nur den Original-Datenschlüssel senden, wie:

http://url.php?[pageid]=1&[input1]=John&[input2]=Doe 

Oder

http://url.php?pageid=1&input1=John&input2=Doe 

Ist es möglich? Ich habe mehrere Methoden ausprobiert und noch kein geeignetes gefunden.

Antwort

1

Ich würde versuchen, das Formular anstelle der for-Schleife zu serialisieren. Es sendet grundsätzlich alle Eingabefelder aus Ihrem Formular als JSON-Objekt an den Server.

Für größere Form sollte HTTP POST-Methode bevorzugt werden, können Sie komplizierte Objekte senden.

prüfen diese für weitere Hilfe: jQuery AJAX submit form

Hoffnung dessen, was Sie brauchen.

+0

Das Problem ist, dass die Eingänge nicht Namen, nur IDs haben, und Serialisierung gibt ein leeres fieldset zurück –

+0

Und was Sie begrenzt, Eingabe auch Namen hinzufügen .. Ich würde sagen, es ist eine gute Praxis, sie zu haben, sie sind im Grunde konzipiert zu diesem Zweck da sein –