[英]Javascript SELECT BOX options dependent on other SELECT BOX option selected
[英]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.