jQuery-post eine serialisierte form dann einfügen in mysql per php?
Ich versuche zu posten, eine serialisierte form eines sumbit.php Datei, die wiederum dann einen insert in eine MySQL-Datenbank, aber der Letzte Eingang, der versteckt ist, ist nicht immer in die Datenbank eingefügt, aber der rest.
Hier ein paar snippet-Beispiele, was ich habe, so weit, das funktioniert nicht:
HTML
<form method="post" action="" >
<label for="name" class="overlay"><span>Name...</span></label>
<input class="input-text" type="text" name="name" id="name" />
<label for="email" class="overlay"><span>Email...</span></label>
<input type="text" class="input-text" name="email" id="email"/>
<label for="website" class="overlay"><span>Website...</span></label>
<input type="text" class="input-text" name="website" id="website"/>
<label id="body-label" for="body" class="overlay"><span>Comment it up...</span></label>
<textarea class="input-text" name="body" id="body" cols="20" rows="5"></textarea>
<input type="hidden" name="parentid" id="parentid" value="0" />
<input type="submit" value="Comment" name="submit" id="comment-submit" />
</span>
</form>
Javascript
$('form.').submit(function(event) {
$.post('submit.php',$(this).serialize(),function(msg){
//form inputs consist of 5 values total: name, email, website, text, and a hidden input that has the value of an integer
}
});
PHP - (submit.php)
$arr = array();
mysql_query(" INSERT INTO comments(name,email,website,body,parentid)
VALUES (
'".$arr['name']."',
'".$arr['email']."',
'".$arr['website']."',
'".$arr['body']."',
'".$arr['parentid']."'
)");
Es gibt Kommentare auf die
Hoffen wir, dass little Bobby Tables nicht zu Besuch kommen - xkcd.com/327
serialize()
doc-Seite, die scheinen zu zeigen, andere haben Probleme mit dem serialisieren versteckte Felder: api.jquery.com/serializeHoffen wir, dass little Bobby Tables nicht zu Besuch kommen - xkcd.com/327
InformationsquelleAutor Ryan | 2010-07-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, hier ist der funktionierende code. Es waren ein paar Fehler (zB. nicht geschlossene Funktion Klammern auf die post, unverschlossenen span-tags, keine POST-var in PHP etc.)
HTML (stellen Sie sicher, es ist eine form der AKTION, so dass, wenn die Menschen nicht js auf können Sie immer noch die form)
Javascript
PHP
$arr = $_POST;
Tat es. Ich war nicht greifen es an der richtigen Stelle. Danke Josh!Kein problem. Sollten Sie "akzeptieren" diese Antwort, so dass andere Leute wissen, was man arbeitete. Cheers
InformationsquelleAutor User123342234
Versuchen manuell hinzufügen das versteckte Feld. Als Bernstein wies darauf hin, scheint ein problem mit dem hidden-Feld.. könnte ein bug in einer alten jquery-version, vielleicht machen Sie sicher, dass die neuesten zuerst.
Ansonsten vielleicht versuchen Sie, das versteckte Feld...?
InformationsquelleAutor Ben
Dein script sollte funktionieren. Bitte überprüfen Sie parentid " im backend, ob es null oder 0 ?? Sie können
Dann überprüfen Sie die parentid-Feld der Tabelle Kommentare, ob Sie es annehmen, 0 oder null-Werte oder nicht, und überprüfen Sie Ihre Fremdschlüssel definiert ist, in einem aktuellen Art und Weise, wie Sie es verdienen.
Dank
Es ist dumping nur die ersten vier array-Elemente, nicht parentid; jedoch, wenn ich die alert() die serialisierte form, die parentid, die richtig angezeigt wird.
parentid
int(11) not NULL DEFAULT '0'Dann denke ich, Sie sind mit älteren Jquery 🙂 Sie können versuchen, als Ryan sagt, serialize()+'&parentid='+$('#parentid').val () ist, muss Es funktionieren Wird. Dank
Vielleicht haben Sie einige Fehler in Ihrem PHP-code. Was bedeutet
print_r($_POST)
geben Sie?Ich bin mit jQuery 1.4.2 @Felix Kling: print_r($_POST) Ergebnisse korrekt. Array ( [name] => test [email] => [email protected] [Webseite] => test.com [body] => test-text [parentid] => 8 )
InformationsquelleAutor Muhit
Beim serialisieren eines Formulars werden die Daten durch ein kaufmännisches und (&)
In Ihrem PHP-code, den Sie haben, zu explodieren, auf das kaufmännische und-Zeichen und dann explodieren wieder für jeden in das neue array auf das = - Zeichen.
Beispiel
Haben, dann wird der PHP-Variablen wie $name, $email, $Adresse, etc. was auch immer sonst Sie mit dem Namen Ihrer Eingaben auf dem Formular.
Nein, jQuery werden die Daten versendet als normale POST-Parameter. Sie scheinen zu denken, dass jQuery senden wird nur ein parameter (
data
) mit serialisierten Daten. Das ist nicht korrekt. Und die OP schon sagt, dass es funktioniert für alle, aber das versteckte Feld.InformationsquelleAutor dockeryZ