我有產生作爲傳遞選中的複選框的數組的JavaScript
$sql = "sql statement";
$courseResult = mysqli_query($connection, $sql);
$courses = mysqli_fetch_row($
// Display the courses the user has taken
while ($courses) {
echo "<td><input type='checkbox' name='coursesToAdd[]' id='coursesToAdd[]' value='$courses[0]'>$courses[0]</td></tr>";
$courses = mysqli_fetch_row($courseResult);
}
<input type='button' onclick='EditStudentCertificates()' value='Submit'/>
我想要做的是獲取值一些複選框值用戶檢查到一個數組,而不是訪問該陣列由JavaScript的,我試圖做的是這樣的,但它似乎並沒有工作:
function EditStudentCertificates(){
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var coursesToAddField = document.getElementById("coursesToAdd[]");
var coursesToAdd = coursesToAddField ? coursesToAddField.value : '';
xmlhttp.open("POST","updateStudentCInfo.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("certValue="+certValue+"&coursesToAdd="+coursesToAdd);
window.alert("Your certificate information has been updated");
window.location.reload();
}
什麼,我認爲這個問題是是一些與我試圖讓在JavaScript從checkboxs的值的方式,有可能東西與:
var coursesToAddField = document.getElementById("coursesToAdd[]");
var coursesToAdd = coursesToAddField ? coursesToAddField.value : '';
因爲變量coursesToAdd似乎除了第一個複選框在頁面上的值以外,無論在點擊提交之前我在頁面上檢查了多少個複選框。
Ajax調用完成之前你重新加載頁面(胡亂猜測因爲你沒有真正告訴我們問題是什麼,也沒有提出問題)。 – adeneo
它看起來像你所有的複選框使用相同的ID。你不能那樣做。 Ids需要是獨一無二的。您可以對所有名稱使用相同的「coursesToAdd []」,但不能使用ID。改爲使用類,然後遍歷getElementsByClassName而不是getElementById。 – Steve