「選択」ボックスのあるフォームがあります。ボックスを選択したときに、データベースの適切なレコードを同じページに表示したいと思います。
関連するファイルは2つあります。フォームを含むHTMLページ:
<form id="theForm">
<select id="theDropdown">
<option value="biology">Biology</option>
<option value="chemistry">Chemistry</option>
<option value="english">English</option>
</select>
</form>
<div id="resultsGoHere"></div>
また、jQueryコードも含まれています。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#theDropdown').on('change', function() {
var qString = '{sub: ' + $('#theDropdown option:selected').text() + '}';
$.post('sub_db_handler.php', qString, processResponse);
// $('#resultsGoHere').html(qString);
});
function processResponse(data) {
$('#resultsGoHere').html(data);
}
});
</script>
jQueryコードは、選択メニューの選択された値を正常に取得し、JSONクエリ文字列をフォーマットしているようです。この文字列は、上記のコメント行がコメント化されていない場合に出力されます。
post
上記のコマンドで参照されているPHPスクリプトは次のとおりです。
<?php
$con = mysql_connect("localhost","rongilmo_ron","******");
if(!$con) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("rongilmo_databases", $con);
$sub = $_POST['theDropdown'];
$q = "SELECT dbs.db_name, dbs.db_url FROM dbs, subjects, subjects_databases
WHERE subjects.subject_id=subjects_databases.subject_id
AND subjects_databases.database_id=dbs.db_id
AND subjects.subject_name='$sub'";
$r = mysql_query($q);
$array = mysql_fetch_row($r);
echo json_encode($array);
?>
結果がまったく得られません。非ajaxモードでクエリをテストしたので、それは問題ではありません。
ajaxはまだ新しいです。私はこれに2日間取り組んできましたが、たくさんのチュートリアルを読んだり、たくさんのグーグルをしたりしたにもかかわらず、うまくいかないようです。
あなたが提供できるどんな助けも大いに感謝されるでしょう。