PHP で生成されたチェック ボックスから値を取得し、AJAX 経由で送信する jQuery 関数があります。ちなみに、値は常に文字だけの単一の単語です。以下はスクリプトです。
<script type="text/javascript">
$(document).ready(function() {
$("input:checkbox").on("click", function () {
step = this.value;
//document.getElementById("test").innerHTML = step;
responseArray = [];
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
responseArray = eval("(" + xmlhttp.responseText + ")");
document.getElementById("test").innerHTML = responseArray;
}
}
xmlhttp.open("GET", "checkbox.php?step="+step, true);
xmlhttp.send();
});
});
</script>
上記のコードは、「ReferenceError: [this.value] が定義されていません」という結果になります。[this.value] は、チェックされているボックスに基づいて変化する実際の値です。上記のコードの 5 行目に気付いた場合、その行をコメントアウトしないと、step 変数の "test" に正しい値が表示されるので、それ以降になります。以下は、checkbox.php ファイルを完全に簡素化して基本的に何もなくしても、エラーが発生します。
<?php
$step = $_GET["step"];
echo "[" . $step . "]";
?>