>  기사  >  백엔드 개발  >  내 jQuery 직렬화된 양식 데이터가 PHP 서버에 도달하지 못하는 이유는 무엇입니까?

내 jQuery 직렬화된 양식 데이터가 PHP 서버에 도달하지 못하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-02 16:43:02247검색

Why is my jQuery serialized form data not reaching the PHP server?

jQuery와 PHP를 사용하여 양식 직렬화 및 제출

문제: jQuery를 사용하여 양식 데이터를 직렬화하더라도 데이터는 서버에 도달하지 못했습니다.

HTML 양식:

<code class="html"><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></code>

JavaScript:

<code class="javascript">$("#contactForm").submit(function(e) {
    e.preventDefault(); // Prevent browser submission
    $.post("getcontact.php", $("#contactForm").serialize())
    .done(function(data) {
        // Process server response
    });
});</code>

서버 -측 PHP(getcontact.php):

<code class="php">$nume = $_POST["nume"];
$email = $_POST["email"];
$telefon = $_POST["telefon"];
$comentarii = $_POST["comentarii"];</code>

문제 해결:

$.post( ) (jQuery 3.0에서는 더 이상 사용되지 않음). 대신 다음 설정으로 $.ajax()를 사용하세요.

<code class="javascript">$.ajax({
    type: "POST",
    url: "getcontact.php",
    data: $("#contactForm").serialize(),
    dataType: "json",
    success: function(data) {
        // Process server response
    },
    error: function() {
        // Handle errors
    }
});</code>

이 업데이트된 코드에서:

  • $.preventDefault()는 브라우저가 양식을 제출하는 것을 중지합니다.
  • transport가 생략되어 jQuery가 가장 적합한 방법을 선택할 수 있습니다.
  • dataType은 "json"으로 설정되어 서버 응답을 JSON으로 해석합니다.
  • 성공 및 오류 콜백은 서버를 처리합니다. 응답과 오류가 각각 발생합니다.

위 내용은 내 jQuery 직렬화된 양식 데이터가 PHP 서버에 도달하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.