jQuery 및 PHP를 사용하여 양식 직렬화 및 제출
문제: jQuery 결과를 사용하여 양식의 데이터 전송 시도 서버에 데이터가 도달하지 않습니다.
HTML 형식:
<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>
원인:
문제는 $.post() 사용에 있습니다. 방법. 기본적으로 jQuery는 application/x-www-form-urlencoded 형식으로 데이터를 보냅니다. 그러나 PHP의 $_REQUEST 슈퍼 전역은 양식 제출을 위해 데이터가 다중 부분/양식 데이터 형식일 것으로 예상합니다.
해결책:
이 문제를 해결하는 한 가지 방법은 다음과 같습니다. contentType 및 processData 옵션이 false로 설정된 $.ajax() 메서드를 사용하세요.
<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>
또 다른 옵션은 PHP 스크립트에서 var_dump($_POST) 문을 사용하여 양식 제출을 디버깅하고 결정하는 것입니다. 데이터가 제대로 수신되고 있는지.
위 내용은 내 jQuery 양식 제출이 내 PHP 서버에 도달하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!