2012-03-22 2 views
1

나는 내 웹 사이트에 문의 양식에 대한이 스크립트를 작성, 모든 모든
[object HTMLCollection] C 사람이 무엇이 말해되어 얻을 수있다 데이터베이스 내에서 데이터를 저장하는 대신 그러나 작동 뭐야? 또는 무엇이 잘못 되었나요? 나는 google에 모양이 있었다 그러나 그것에 관하여 다량 정보를 찾아 낼 수 없다.아약스 후 데이터 오류 [객체 HTMLCollection]

<script type="text/javascript"> 

    //when the button is clicked 



    $(document).ready(function() { 

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



     $('.small').hide(); 



       var name = $("input#name").val(); 

      if (name == "") { 

      $("span#name").show(); 

      return false; 

     } 



       var name = $("input#email").val(); 

      if (name == "") { 

      $("span#email").show(); 

      return false; 

     } 



       var name = $("input#subject").val(); 

      if (name == "") { 

      $("span#subject").show(); 

      return false; 

     } 



      var name = $("textarea#message").val(); 

      if (name == "") { 

      $("span#message").show(); 

      return false; 

     } 







     var dataString = 'name='+ name + '&email=' + email + '&subject=' + subject + '&message=' + message; 



      $.ajax({ 

      type: "POST", 

      url: "/scripts/send_message.php", 

      data: dataString, 



      }); 

    $("#messagearea").load("console/new_message_profile.php?sent=1"); 

    }); 

    }); 

    </script> 
+0

모두에 대해'name'과 같은 변수 이름을 가지고 있고 Ajax에서 초기화되지 않은 변수를 전달하려고 시도하고 있습니다. – Namit

+1

코드를 들여 쓰기에 맞게 들여 보내주십시오. – Bergi

+0

* 기침 *. 직렬() * 기침 * –

답변

2

@Namit이 언급 한대로 name을 모든 변수로 사용합니다. 문자열을 구성하는 경우 email, subjectmessage은 초기화되지 않습니다.

사용자에게 undefined을 제공해야하지만 이상한 Internet Explorer 동작 (Is there a spec that the id of elements should be made global variable? 참조)으로 인해 이러한 변수는 DOM 요소를 보유합니다. 동일한 ID를 가진 요소가 여러 개있는 것 같습니다 (여기에는 절대하지 마십시오), <span><input>, 변수에 HTMLCollection 개체가있는 것으로 보입니다. 다른 문자열과 연결할 때 [object HTMLCollection] 문자열로 캐스트됩니다.

+0

죄송합니다. – Cookiimonstar

0

변수 name을 다른 모든 필드에도 재사용하고 있습니다. 필드 이름을 해당 입력 ID로 변경해야합니다.

var name = $("input#email").val(); // needs to be email 
var name = $("input#subject").val(); // needs to be subject