所以我有一个由onchange填充的城市下拉列表,我试图获取它,以便每次页面重新加载时都不需要onchange,因为它是一个表单。
这是状态下拉列表,有效。
<p id=stateDiv><label>State</label></p><p><select name='States' id='States' onchange='getCity(this.value)'>
" . $states . "
</select></p>";
这是城市下拉功能调用,它不起作用。我是javascript的新手,所以我不确定如何使用php格式化调用。
if($state==""){
echo '<p id="citydiv"></p>';
}else{
echo '<p id="citydiv"><script type="text/javascript">getCity('.$state.');</script></p>';
}
getCity函数
function getCity(stateId)
{
var strURL="findcity.php?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);
}
}
答案 0 :(得分:2)
当您遇到这样的问题时,请始终查看HTML源代码。在这种情况下,您可能会看到:
getCity(GA);
显然这是错误的,应该是"GA"
。
每当您将PHP变量转储到JavaScript中时,请始终使用json_encode
。
答案 1 :(得分:1)
与Kolink所说的一样,你的javascript函数“getCity”是什么样的?如果它只是返回一个值,这将不起作用。您将需要获取元素(document.getElementById('cityDiv')
)并将innerHTML设置为返回值或使用document.write而不是返回值。