2012-05-10 3 views
0

나는 어떤 형태의 데이터를 게시하고 결과를 반환하기 위해 노력하고있어하지만 난 문제가이 작업을 얻는 데 :jquery ajax에 무슨 문제가 있습니까?

자바 스크립트를 :

<script type="text/javascript"> 
    $(document).ready(function() { 

     $("#sendthis").click(function() { 

      $.ajax({ 
       type: "POST", 
       data: $('#theform').serialize(), 
       cache: false, 
       url: "form.php", 
       success: function (data) { 

        alert(data); 

       } 
      }); 

      return false; 

     }); 

    }); 
</script> 

html로 :

<form id="theform"> 
    <input type="text" class="sized" name="name" id="name"><br /> 
    <input type="text" class="sized" name="email" id="email"> 
</form> 

<a href="#" id="sendthis">Submit</a> 

페이지 게시하려면 (form.php) :

<?php 
if (isset($_POST['name'])){ 
    $result = $_POST['name']; 
} 

echo $result; 
?> 

이제 내 unde입니다. 양식이 제출되면 form.php에 게시되고 "name"의 입력 값은 경고 상자에 반환됩니다. 그러나 양식 데이터가 올바로 게시 (또는 반환)되는 것을 볼 수 없습니다.

$('#theform').serialize()에 문제가 있습니까? 다른 뭔가?

도움을 주시면 감사하겠습니다.

+2

중지를 작동하는 경우 - 방화범을하고 ($ _ POST)의''위해서 var_dump를 수행하고를 통해 오는 것만 볼 수 – zerkms

+0

해결. 디버그 출력을 추가하는 것은 어둠 속에서 허우적 거리지 않고 무엇이 잘못되었는지 알아내는 쉽고 빠른 방법입니다. HTTP 레벨에서 ajax 코드에 오류 처리기가 없으면 오류가 발생할 수 있습니다. 섹션을 추가하십시오. –

답변

1

이 시도하고 볼이 JQuery와에게

<form id="theform" action="/form.php"> 
    <input type="text" class="sized" name="name" id="name"/><br /> 
    <input type="text" class="sized" name="email" id="email" /><br /> 
    <input type="submit" name="submit" value="Submit" /> 
</form> 

추측

$("#theform").on('submit', function() { 
    $.post($(this).attr('action'), $(this).serialize(), function(data) { 
     alert(data); 
    }); 
    return false; 
}); 
+0

미리 정의 된 값을 가진 숨겨진 양식 필드 만 게시됩니다. 텍스트 입력과 같은 다른 모든 양식 필드는 값을 삽입해도 게시되지 않습니다. – JROB

+0

제공 한 예에서 숨겨진 양식 필드가 표시되지 않으므로 수행하려는 작업을보다 잘 표현한 경우 더 나은 답변을 얻을 수 있습니다. – Rob

+0

OP가 자신의 아약스 코드에서 자신을 처리하고 있기 때문에 액션이나 제출 버튼을 추가 할 필요가 없습니다. 당신이 한 모든 것은 "우아한 퇴화"강화의 십분의 일이다. 그것은 중요한 것은 아니다. –

1

아약스 요청에 오류 콜백을 추가하여 게시 도중 문제가 발생하면 잡으려고합니다. 파이어 버그와 같은 디버거가있어 어떤 데이터가 게시되고 있는지 (그리고 어디에서) 표시 할 수 있습니까?

+0

제안 해 주셔서 감사합니다. 방금 방화범을 사용하여 숨겨진 양식 필드가 게시되고 일반 입력 필드가 아닌 것으로 나타났습니다 ...? 이유를 알아낼 수 없습니다. (페이지는 분명히 위의 붙여 넣은 코드보다 더 많은 내용을 가지고 있습니다.) – JROB

+0

코드 또는 jsFiddle에서 작동하지 않는 serialize 논리의 복제 가능한 예를 게시 할 수 있습니까? 문제가 반복되지 않는다면 추측하기가 어렵습니다. 서식 오류 또는 잘못된 html 일 수 있습니다 (예 : 위의 입력 태그는 닫히지 않음). –

+0

John은 양식의 모든 내용을 표시하지 않으므로 매우 혼란 스럽습니다. 우리에게 보여준 유일한 필드는 이름과 이메일입니다. 그가 +1 한 짐에게 +1. 이 질문에 대한 대답은 디버거에서 NET 탭을 사용하여 요청을 확인한 다음 문제가 발생한 상황에 대한 자세한 정보가있을 때 질문을 자세히 편집하는 것입니다. 행운을 빕니다! – jmort253

관련 문제