簡體   English   中英

保留依賴於其他選擇框的選擇選項值-國家(地區)城市

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

我有一個表格,其中我顯示數據庫中的所有國家/地區,根據所選國家/地區填充的州,根據州/州,使用jquery填充城市。 一切正常。 問題是提交頁面並重新加載頁面時,我只能保留國家/地區,而不能保留州和城市選擇框,因為它們是使用帶有select選項的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,根據負載類型,可以訪問州或城市表,並在州/市下拉列表框中顯示值。

我認為這比您想的容易。 由於您的腳本僅在onchange事件上運行,因此您可以預填充投遞箱,甚至不必對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仍然有效。 輕而易舉! :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM