2013-08-16 102 views
1

在下面的代碼中(無頁面加載)獲取複選框值時出現問題。 如果點擊複選框,則可以通過數組變量check傳遞值。但每當我點擊複選框,我得到" Array ([0] => undefined)".使用AJAX獲取沒有頁面加載的複選框值

這裏是我的代碼:

的index.html

<script src="create_ajax_object.js" type="text/javascript"></script> 
<script language="javascript" type="text/javascript"> 
function display() { 
    var ajax = create_ajax_object(); 
    if (ajax) { 
     ajax.onreadystatechange = function() { 
      if (ajax.readyState == 4 && ajax.status == 200) { 
       document.getElementById("target").innerHTML = ajax.responseText; 
      } 
     } 
     ajax.open("POST", "fetchdata.php", true); 
     var check = new Array(); 
     var "check[]=" + encodeURIComponent(document.myForm.user.value); 
     ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
     ajax.send(check[]); 
    } else { 
     alert("Your browser doesnt support AJAX!"); 
    } 
} </script> 
<br> 
<form name='myForm'> 
    <input type="checkbox" name="user" value="First" onclick="display();">1 
    <br> 
    <input type="checkbox" name="user" value="Second" onclick="display();">2 
    <br> 
    <input type="checkbox" name="user" value="Third" onclick="display();">3 
    <br> 
</form> 

</html> 

fetchdata.php

<?php 
$no=array($_POST['check']); 
foreach($no as $n) 
{ 
    print_r($n); 
} 
?> 
+0

修復你的語法錯誤:'var「check [] =」+ ...'不是一個有效的語句,你需要在'var'後面有一個變量名和賦值操作符。 – Barmar

回答

0

變量document.myForm.user的複選框的對象數組,你必須迭代它,並檢查每個元素的屬性checked

+0

嗨馬雷克iam編程小新...請問你解釋與編碼? –

+0

如果你使用一些js庫,會更好。例如,使用jQuery,它就像$ .post('fetchdata.php',$('form [name =「myForm」]')。serialize(),function(data){$('#target') .html(data);}); – Marek

+0

嗨巴爾默,馬里克仍然沒有改善... :(如果我使用一個複選框此方法工作)...但在多個複選框的情況下沒有改變.. :(請幫我 –

相關問題