0

ajax 選択ボックスについて教えてください。

私は2つの選択ボックスを持っています:

  1. 範囲

  2. 都市

地域を選択すると、選択した地域に応じて CITIES 選択ボックスのオプションが変わります。

動作は問題ありませんが、ページをロードすると (つまり、データを編集するため)、正しい都市が表示されません (選択ボックスのポインタは、以前に選択した DB 領域に従って、リストの最初の都市の上に立っています)。

何を変更する必要がありますか?

ありがとう

クライアント サイト:

<p><label>Area</label> 
    <select name='areaID' id='areaID'>
        <?PHP
        $query = mysql_query("SELECT * FROM `areas` ORDER BY id ASC "); 
        while($index = mysql_fetch_array($query)) 
        {
            $db_area_id = $index['id'];
            $db_area_name = $index['name'];
            if ($db_area_id == $userDetails['areaID'])
                echo "<option value='$db_area_id' selected>$db_area_name</option>";         
            else    
                echo "<option value='$db_area_id'>$db_area_name</option>";
        }
        ?>
    </select><span>*</span>
</p>

<p><label>City</label>
    <select id='cityID' name='cityID'>  </select>
</p>


<script>
$(function () {
    function updateCitySelectBox() {
        var areaID = $('#areaID').val();
        $('#cityID').load('ajax/getCities.php?areaID=' + areaID);

        return false;
    }

    updateCitySelectBox();
    $('#areaID').change(updateCitySelectBox);
});
</script>

サーバ側:

$areaID = (int) $_GET['areaID'];

$second_option = "";

$query2 = mysql_query("SELECT * FROM `cities` WHERE area_id = $areaID ORDER BY id ASC");
while($index = mysql_fetch_array($query2)) 
{
    $id = $index['id'];
    $name  = $index['name'];
    $second_option .= "<option value='$id'>$name</option>";

}
echo $second_option;
4

1 に答える 1

0

次のコード行を追加してみてください。ウィンドウのロード時に関数を呼び出す必要があります。

$(document).ready(function(){
    window.load = updateCitySelectBox();
});
于 2013-10-12T08:41:35.693 に答える