米国のさまざまな州が表示されるドロップダウン メニューがあります。ユーザーが異なる州を選択すると、this.value が ajax 関数に送信され、その州内の異なる都市で満たされた別のドロップダウン メニューが表示されます。
良いニュースは、それが機能することです...ほとんどの場合。しかし、「ニューヨーク」などの 2 つの単語を含む州を選択すると、何も見つかりません。真ん中に白いスペースがあるので、私はそれを認識します。したがって、this.value は実際には「New York」ではなく「New」のみを渡します。以下は私のPHPコードとAJAX関数です。私がここで見逃したことを誰か教えてもらえますか?! どうもありがとう :-)
//if result returns a value
if ($result != NULL){
$row = mysql_fetch_assoc($result);
$countryCode = $row['Code'];
if ($countryCode != NULL){
$sql = "SELECT DISTINCT District FROM City WHERE CountryCode = '$countryCode'";
$result = mysql_query($sql);
?>
<select name="state" onchange="getCity('<?=$country?>',this.value)">
<option>Select State</option>
<? while($row=mysql_fetch_array($result)) { ?>
<option value="<?=$row['District']?>"><?=$row['District']?></option>
<? } ?>
</select>
<?php
}
}
function getCity(countryId, stateId) {
var strURL="findCity.php?country="+countryId+"&state="+stateId;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('citydiv').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}