在城市下拉列表中保留值(第4部分)

keep value in city drop down list(part 4)

本文关键字:4部 城市 下拉列表 保留      更新时间:2023-09-26

续。从点击提交按钮后的下拉列表中获取州名称(第3部分)

  • 状态数据json($stateJsonObject

    Array ( 
    [0] => stdClass Object ( [stateId] => s1 [stateName] => Kuala Lumpur) 
    [1] => stdClass Object ( [stateId] => s2 [stateName] => Selangor)
    )
    
  • 城市数据json($cityJsonObject

    Array ( 
    [0] => stdClass Object 
    ( [cityId] => c1 [cityName] => Kajang [cityStateId] => s2 ) 
    [1] => stdClass Object 
    ( [cityId] => c2 [cityName] => Seputeh [cityStateId] => s1 ) 
    [2] => stdClass Object ( [cityId] => c3 [cityName] => Shah Alam [cityStateId] => 
    s2 ) 
    [3] => stdClass Object ( [cityId] => c4 [cityName] => Klang [cityStateId] => s2  
    ) 
    [4] => stdClass Object ( [cityId] => c5 [cityName] => Kepong [cityStateId] => s1    
    )
    )
    
  • 代码(test3.php)

    <?php
        $cityState = array();
        $cityName = array();
        for($j = 0; $j < count($cityJsonObject); $j++)
        {
            $cityState[] = $cityJsonObject[$j] -> cityStateId;
            $cityName[] = $cityJsonObject[$j] -> cityName;
        }
    ?>
    <html>
    <head>
    <script type="text/javascript">
        function showCity(state, target_id)
        {
            var stateId = state.options[state.selectedIndex].value; 
            var target = document.getElementById(target_id);
            target.length = 0;
            target.options[0] = new Option('select one', '');
            target.selectedIndex = 0;
            var cityState = <?php echo json_encode($cityState, JSON_HEX_QUOT) ?>;
            var cityName = <?php echo json_encode($cityName, JSON_HEX_QUOT)?>; 
            for(k = 0; k < cityState.length; k++)
            {
                if(stateId == cityState[k])
                {
                    target.options[target.length] =
                    new Option(cityName[k],cityName[k]);         
                }
            }  
        }
    </script>
    </head>
    <body>
    <form action="test3.php" method="post">
        State:
        <select name="state" id="state" onchange="showCity(this, 'city')">
            <option value ="">select one</option>
            <?php
                $select_sign = '';
                for($i = 0; $i < count($stateJsonObject); $i++)
                {
                    if($stateJsonObject[$i] -> stateId == $_POST['state']) 
                    {$select_sign = "SELECTED";}else{$select_sign = "";}
                    echo '<option value = '.$stateJsonObject[$i] -> stateId.' 
                    '.$select_sign.'>';
                    echo $stateJsonObject[$i] -> stateName;
                    echo '</option>';
                }
            ?>
        </select>
        <br />
        City:
        <select name="city" id="city">
            <option value ="">select one</option>
        </select>
        <br />
        <input type="submit" name="submit" value="Submit"/>
    </form>        
    </body>
    </html>
    
  • 我的问题是,我从州下拉列表中选择雪兰莪,然后从城市下拉列表中选中巴生。单击"提交"按钮后,应如何在城市下拉列表中选择Klang名称?

您可以使用以下任一选项,

  • 使用AJAX提交表单。然后页面将不会重新加载,并且您可以保持该值不变。

  • 使用HTML5本地存储(或cookie)来跟踪城市名称应该选择的。加载页面时,检查城市的值已保存,如果已保存,请将select设置为已保存的值。