保留依赖于其他选择框(国家/地区/州/市)的选择选项值


Retain select option value that are dependent on other select box - country state city

我有一个表格,我在其中显示数据库中的所有国家,根据所选国家填充状态,根据状态,使用jquery填充城市。一切都很好。问题是,当页面被提交和重新加载时,我只能保留国家,但不能保留州和城市选择框,因为它们是使用带有选择选项的onChange事件动态填充的。问题是在州和城市的选择框下,我什么都不做,因此当页面重新加载时,我不会得到用户输入的值。如有任何帮助,我们将不胜感激。

以下是代码

包含在php-中

<select name='country' onChange='selectCity(this.options[this.selectedIndex].value)'>
<option value='%'>Select Country</option>"
.$searchController->CreateCSCValues($searchController->GetCSCCountries(),'country').
"</select>
<select name='state' id='state_dropdown' onChange='selectState(this.options[this.selectedIndex].value)'>
<option value='%'>Select State</option>
</select>
<select name='city' id='city_dropdown'>
<option value='%'>Select City</option>
</select>

Javascript/jquery-------

function selectCity(country_id){
           loadData('state',country_id);..........}
function selectState(state_id){
                loadData('city',state_id);......... and then }
function loadData(loadType,loadId){
      var dataString = 'loadType='+ loadType +'&loadId='+ loadId;
src="image/loading.gif" />');
     $.ajax({D
     type: "POST",
     url: "get-State-City.php",
     data: dataString,
     cache: false,
     success: function(result){
            $("#"+loadType+"_loader").hide();
            $("#"+loadType+"_dropdown").append(result);
    }
});

在文件get-State-City.php中,传递loadtype和loadid,并根据loadtype访问State或City表,并在State/City下拉框下显示值。

我认为这比你想象的要容易。因为您的脚本只在onchange事件上运行,所以您可以预先填充dropbox,甚至不必对您的javascript进行任何更改。示例:

<select name='country' onChange='selectCity(this.options[this.selectedIndex].value)'>
    <option value='%'>Select Country</option>
    <?php if( /* country is given */ ): ?>
        <?php foreach($countries as $country): ?>
            <?php $selected = $country->id == $selected_country_id ? ' selected="selected" : ''; ?>
            <option value="<?php echo $country->id; ?>"<?php echo $selected; ?>><?php echo $country->name; ?></option>
        <?php endforeach; ?>
    <?php else: ?>
        <?php echo $searchController->CreateCSCValues($searchController->GetCSCCountries(),'country'); ?>
    <?php endif; ?>
</select>
// the same for the other two dropdowns

现在,所有内容都已预填充(如果给定任何值(,onchange仍然有效。轻松搞定!:(