調査からの回答のグラフを表示する結果ページがあります。グラフは、SQL を実行する PHP ファイルを介して生成されます。結果ページにはフィルタリングを組み込む必要があるため、AJAX を使用して SQL を更新し、結果ページをリロードせずに表示しようとしています。
フィルターのタイプはフォームから選択します。
<form name="sqlselector" action= "javascript" onsubmit"ajaxFunction('barscompleteCCC.php? course=' + document.getElementById('course').value);">
<select name="course">
<option value="All">All</option>
<?php $result= mysql_query('SELECT * FROM tCourse'); ?>
<?php while($row= mysql_fetch_assoc($result))
{ ?>
<option value="<?php echo htmlspecialchars($row['CourseID']);?>">
<?php echo htmlspecialchars($row['CourseName']); ?>
</option>
<?php
}
?>
</select>
<input type="submit" value="Build">
</form>
アヤックスは次のとおりです。
ajaxConnection.onreadystatechange = ajaxReply; // whenever the ready state is changed
ajaxConnection.open('GET', url, true); // opens a request to server
ajaxConnection.send(null); // closes the request
// Now, the code waits unless the ready state changes.
// After every change ajaxReply() is executed
return true;
} // end function ajaxFunction
function ajaxReply() { // your code's logic goes here
if (ajaxConnection.readyState == 4)
{ // 4 mean page loaded successfully
if (ajaxConnection.status == 200)
{ // 200 mean all is OK
document.getElementById('course').innerHTML = ajaxConnection.responseText;
} // end if
else
{ // if the status code is anything else (a rare case though)
alert('Something weird occurred. HTTP error code ' + ajaxConnection.status.toString() + 'yoko.');
return; // exit
}
} // end if
動的に変更したい問題の変数は、PHP ファイルにあります。
session_start();
$course = $_GET['course'];
どうぞ、どんな助けでも大歓迎です。:-)