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>';
}

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);
 }
}
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 に答える