Heim > Artikel > Backend-Entwicklung > Warum erreicht die Übermittlung meines jQuery-Formulars meinen PHP-Server nicht?
Serialisieren und Senden eines Formulars mit jQuery und PHP
Problem: Versuch, die Daten eines Formulars mithilfe von jQuery-Ergebnissen zu senden Es erreichen keine Daten den Server.
HTML Formular:
<code class="html"><form id="contactForm" name="contactForm" method="post"> <!-- Input fields and textarea --> <input id="submitBtn" type="submit" name="submit" value="Trimite"> </form></code>
JavaScript (jQuery):
<code class="javascript">$(document).ready(function(e) { $("#contactForm").submit(function() { $.post("getcontact.php", $("#contactForm").serialize()) .done(function(data) { if (data.trim().length > 0) { $("#sent").text("Error"); } else { $("#sent").text("Success"); } }); return false; }) });</code>
PHP (getcontact.php):
<code class="php">$nume = $_REQUEST["nume"]; // Empty $email = $_REQUEST["email"]; // Empty $telefon = $_REQUEST["telefon"]; // Empty $comentarii = $_REQUEST["comentarii"]; // Empty</code>
Ursache:
Das Problem liegt darin die Verwendung der Methode $.post(). Standardmäßig sendet jQuery Daten im Format application/x-www-form-urlencoded. PHPs $_REQUEST superglobal erwartet jedoch, dass die Daten für Formularübermittlungen im Multipart-/Formulardatenformat vorliegen.
Lösung:
Eine Möglichkeit, dies zu beheben, ist Verwenden Sie die Methode $.ajax(), wobei die Optionen „contentType“ und „processData“ auf „false“ gesetzt sind:
<code class="javascript">var datastring = $("#contactForm").serialize(); $.ajax({ type: "POST", url: "your url.php", data: datastring, contentType: false, processData: false, dataType: "json", // If desired success: function(data) { // Handle success }, error: function() { // Handle error } });</code>
Eine weitere Option ist „use“. die var_dump($_POST)-Anweisung in Ihrem PHP-Skript, um die Formularübermittlung zu debuggen und festzustellen, ob die Daten ordnungsgemäß empfangen werden.
Das obige ist der detaillierte Inhalt vonWarum erreicht die Übermittlung meines jQuery-Formulars meinen PHP-Server nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!