Serialisierung und senden eines Formulars mit jQuery und PHP
Ich versuche zu senden, die einem Formular Daten mithilfe von jQuery. Allerdings werden Daten den server nicht erreichen. Können Sie mir bitte sagen, was ich falsch mache?
Mein HTML-Formular:
<form id="contactForm" name="contactForm" method="post">
<input type="text" name="nume" size="40" placeholder="Nume">
<input type="text" name="telefon" size="40" placeholder="Telefon">
<input type="text" name="email" size="40" placeholder="Email">
<textarea name="comentarii" cols="36" rows="5" placeholder="Message"></textarea>
<input id="submitBtn" type="submit" name="submit" value="Trimite">
</form>
JavaScript (in der gleichen Datei wie die obige form):
<script type="text/javascript">
$(document).ready(function(e) {
$("#contactForm").submit(function() {
$.post("getcontact.php", $("#contactForm").serialize())
//Serialization looks good: name=textInNameInput&&telefon=textInPhoneInput etc
.done(function(data) {
if (data.trim().length > 0) {
$("#sent").text("Error");
} else {
$("#sent").text("Success");
}
});
return false;
})
});
</script>
Server-Seite PHP (/getcontact.php):
$nume = $_REQUEST["nume"]; //$nume contains no data. Also tried $_POST
$email = $_REQUEST["email"];
$telefon = $_REQUEST["telefon"];
$comentarii = $_REQUEST["comentarii"];
Können Sie mir bitte sagen, was ich falsch mache?
UPDATE
Überprüft var_dump($_POST)
und es kehrte ein leeres array.
Komisch ist, dass der gleiche code getestet auf meinem lokalen Rechner funktioniert einwandfrei.
Wenn ich laden Sie die Dateien auf meinem hosting-Raum, in dem es nicht mehr funktioniert. Ich habe versucht zu tun, eine altmodische form, ohne Verwendung von jQuery und alle Daten richtig war.
Ich sehe nicht, wie das wäre, ein server-Konfigurations-problem. Irgendwelche Ideen?
Danke!
- ist Ihr Formular immer abgeschickt? oder man ruft einfach die ajax-Funktion?
- es übermittelt wird,/ kann ich die Daten aus severside zurück zu jquery.
- ich habe einen code, mit dem ich in der Regel verwenden für ajax-Aufrufe. wenn Sie möchten, können Sie es verwenden,
- do u haben ein web-link von Ihrem hosting-Speicherplatz?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit dieser Funktion können Sie
return-type json
EDIT: ich nutze
- Ereignis.preventDefault
zu verhindern, dass der browser immer vorgelegt, die in solchen Szenarien.Hinzufügen von mehr Daten, um die Antwort.
dataType: "jsonp"
wenn es eine cross-domain-Aufruf.beforeSend:
//dies ist ein vorab-Anfrage call back-Funktioncomplete:
//eine Funktion, die aufgerufen werden, nachdem der request endet.also code, der ausgeführt werden soll, unabhängig von Erfolg oder Fehler können hierasync:
//standardmäßig werden alle Anfragen asynchroncache:
//standardmäßig true. Wenn auf false eingestellt, wird es Kraft angeforderte Seiten nicht vom browser zwischengespeichert.Finden Sie die offizielle Seite hier
Können Sie fügen Sie zusätzliche Daten mit Formular-Daten
verwenden serializeArray und fügen Sie die zusätzliche Daten:
Haben Sie überprüft, in der Konsole, wenn die Daten aus dem Formular ordnungsgemäß serialisiert? Ist der ajax-request erfolgreich? Auch Sie nicht schließen Sie Platzhalter nennen, die kann dazu führen, dass einige Probleme:
var_dump($_POST);
. Und Sie könnte auch prüfen, ob beim ändern$.post
url getcontact.php?test=1 Sie Sie tatsächlich erhalten in $_GET['test'] auf server-Seite.Hast du auch schon im firebug, ob POST oder GET?.
überprüfen Sie die display-Konsole.
Stellen im Testskript:
Können Sie sehen, die Antwort vom server, wenn es auf etwas zeigt.
Kann das problem sein, die PHP-Konfiguration:
Bitte überprüfen Sie die Einstellung max_input_vars in der php.ini-Datei.
Versuchen, erhöhen Sie den Wert dieser Einstellung, um die 5000 als Beispiel.
Dann starten Sie Ihren web-server und versuchen.
Siehe die Antwort von diesem früheren post. Als Sie verwenden können .post() oder .get() zum versenden der serialisierten Daten an server.
Konvertieren von Formulardaten an JavaScript-Objekt mit jQuery
Trotzdem, es ist sehr verwirrend, Ihre situation, verursacht durch das fehlen von details.
Wenn Sie über einen web-server (non-local) dieser code kann falsch sein, wenn Sie vergessen, um das setup der eigentliche jquery-link. Ich weiß nicht, auch wenn Sie sich jquery auf absoluter Pfad oder ein relativer Pfad!?
Beiden Ende der Registrierung oder der Benutzer Automatisch Registriert "Shouttoday" von ajax, wenn Sie die Registrierung Abschließen, indem Sie form submission.