PHP Jquery クックブックからこのチュートリアルを実行しようとしていますが、最初のコンボ ボックスに国データが入力されておらず、空です! データベースに 4 つのテーブルがあり、それらをチェックしましたが、すべて問題ありません! テーブルは次のとおりです: Country、States、Towns、および Towninfo
私のhtmlには次のものがあります:
<html>
<head>
</head>
<body>
<ul>
<li>
<strong>Country</strong>
<select id="countryList">
<option value="">select</option>
</select>
</li>
<li>
<strong>State</strong>
<select id="stateList">
<option value="">select</option>
</select>
</li>
<li>
<strong>Town</strong>
<select id="townList">
<option value="">select</option>
</select>
</li>
</ul>
<p id="information"></p>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('select').change(getList);
getList();
function getList()
{
var url, target;
var id = $(this).attr('id');
var selectedValue = $(this).val();
switch (id)
{
case 'countryList':
if(selectedValue == '') return;
url = 'results.php?find=states&id='+ selectedValue;
target = 'stateList';
break;
case 'stateList':
if($(this).val() == '') return;
url = 'results.php?find=towns&id='+ selectedValue;
target = 'townList';
break;
case 'townList':
if($(this).val() == '') return;
url = 'results.php?find=information&id='+ selectedValue;
target = 'information';
break;
default:
url = 'results.php?find=country';
target = 'countryList';
}
$.get(
url,
{ },
function(data)
{
$('#'+target).html(data);
}
)
}
});
</script>
</body>
</html>
そして私が持っているphpファイルで:
<?php
$mysqli = new mysqli('localhost', 'root', '', 'chain');
$find = $_GET['find'];
switch ($find)
{
case 'country':
$query = 'SELECT id, countryName FROM country';
break;
case 'states':
$query = 'SELECT id, stateName FROM states WHERE countryId='.$_GET['id'];
break;
case 'towns':
$query = 'SELECT id, townName FROM towns WHERE stateId='.$_GET['id'];
break;
case 'information':
$query = 'SELECT id, description FROM towninfo WHERE townId='.$_GET['id'] .' LIMIT 1';
break;
}
if ($mysqli->query($query))
{
$result = $mysqli->query($query);
if($find == 'information')
{
if($result->num_rows > 0)
{
$row = $result->fetch_array();
echo $row[1];
}
else
{
echo 'No Information found';
}
}
else
{
?>
<option value="">select</option>
<?php
while($row = $result->fetch_array())
{
?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?> </option>
<?php
}
}
}
?>
本によると、ページが読み込まれた後に最初のコンボボックスを設定する必要がありますが、なぜ空なのかわかりません! なぜこれが起こっているのか教えてください!