次のように生成するチェックボックス値がいくつかあります
$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のチェックボックスから値を取得しようとしている方法にあるものであり、おそらく次のようなものです。
var coursesToAddField = document.getElementById("coursesToAdd[]");
var coursesToAdd = coursesToAddField ? coursesToAddField.value : '';
変数coursesToAddは、送信を押す前にページでチェックしたチェックボックスの数に関係なく、ページの最初のチェックボックスの値以外は何も保持していないように見えるためです。