2012-03-22 62 views
1

我寫這個劇本給了一個接觸的形式在我的網站,一切都不過工作將數據存儲在我的數據庫中的所有是得到的是
[object HTMLCollection]Ç 的任何人告訴我這是什麼,而不是是什麼? 或出了什麼問題?我曾看過谷歌,但我無法找到關於它的很多信息。阿賈克斯後的數據誤差對象的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 2012-03-22 14:01:14

+1

中初始化的變量,請將你的代碼縮進適合閱讀的地方。 – Bergi 2012-03-22 14:01:19

+0

*咳嗽*。序列化()*咳嗽* – 2012-03-22 14:02:01

回答

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 2012-03-22 14:26:25

0

您正在爲所有其他字段重複使用變量name。您需要將字段名稱更改爲相應的輸入ID。

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