1

因此,我有一个由 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>';
}

获取城市功能

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);
 }
}
4

2 回答 2

2

当您遇到此类问题时,请始终查看 HTML 源代码。在这种情况下,您可能会看到:

getCity(GA);

显然这是错误的,应该是"GA"

每当您将 PHP 变量转储到 JavaScript 中时,请始终使用json_encode.

于 2013-08-14T21:56:11.767 回答
1

除了 Kolink 所说的,您的 javascript 函数“getCity”是什么样的?如果它只是返回一个值,这将不起作用。您要么需要获取元素 ( document.getElementById('cityDiv')) 并将 innerHTML 设置为返回值,要么使用 document.write 而不是返回值。

于 2013-08-14T22:00:20.610 回答