1

国の変更ドロップダウンで都市ドロップダウンの値を変更したい。国の値を選択すると、変数$rが未定義であると表示されます。 ページ:index.php

<form method="post" action="" name="form1">
<table width="60%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="150">Country</td>
    <td  width="150"><select name="country" onChange="getCity('findcity.php?country='+this.value)">
    <option value="">Select Country</option>
    <option value="1">USA</option>
    <option value="2">Canada</option>
        </select></td>
  </tr>
  <tr style="">
    <td>City</td>
    <td ><div id="citydiv"><select name="city">
    <option>Select City</option>
        </select></div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>

ページ:findcity.php

<?php 
$country=$_REQUEST['country'];
$link = mysql_connect('localhost', 'root', ''); 
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_ajax');
$query="select city from city where countryid=$country";
$result=mysql_query($query);
?>
<select name="city">

<? while($r=mysql_fetch_array($result)) { 

?>
<option value=""><?php echo $r['city'];?></option>
<? } ?>
</select>

これがスクリプトです

<script>
function getXMLHTTP() { //function to return the xml http object
        var xmlhttp=false;  
        try{
            xmlhttp=new XMLHttpRequest();
        }
        catch(e)    {       
            try{            
                xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e){
                try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(e1){
                    xmlhttp=false;
                }
            }
        }

        return xmlhttp;
    }



    function getCity(strURL) {      

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

    }
</script>
4

3 に答える 3

0

mysql_fetch_assoc代わりに使用してみてくださいmysql_fetch_array

于 2012-08-08T09:25:47.850 に答える
0

「。 」の近くに「php」と書くのを忘れて<?(write down php here) while($r=mysql_fetch_array($result)) {、国のIDを取得しているかどうかを確認するなどのデバッグを実行し、クエリが適切な結果を返すかどうかを確認するか、ブラウザでクエリを出力してデータベースでそのクエリを実行します。

于 2012-08-08T09:47:28.933 に答える
0

コードをに変更します。

<?php
  while($r=mysql_fetch_array($result))
  { 

      echo '<option value="">'.$r['city'].'</option>';
   } 
?>
于 2013-01-09T21:13:57.393 に答える