2012-08-28 56 views
0

嗨,因爲標題暗示我試圖從select元素獲取兩個值。如何從單個選擇中獲取兩個值

我已準備好設置的是兩個選擇元素,其中第一個選擇過濾器的選擇第二個,有超過16000個項目過濾第二個,我想我可能需要一個更好的方法來整合這個,但無論如何,我需要從顯示名稱和選擇的價值,並創建第二個變量來保存值。

從頂部開始的是過濾值的腳本,如果任何人都可以點我一個很好的AJAX嘖嘖的方向來處理這件事了,我會greatfull這是我的js

<script type="text/javascript"> 
//<![CDATA[ 
jQuery.fn.filterOn = function(selectFrom, values) { 
    return this.each(function() { 
     var select = this; 
     var options = {}; 
$(select).find('option').each(function() { 
    var $o = $(this), title = $o.attr('title'); 
    if (options.hasOwnProperty(title) === false) { 
     options[title] = []; 
    } 
    options[title].push({ 'text': $o.text(), 'value': $o.val() }); 
}); 
$(select).data('options', options); 
     console.log(selectFrom); 
     $(selectFrom).change(function() { 
    var $select = $(select), 
     options = $select.empty().data('options')[$(this).val()]; 
    // options is now just an array of objects with value and text properties, so: 
    $.each(options, function() { 
     $('<option value="' + this.value + '">' + this.text + '</option>').appendTo($select); 
    }); 
    }); 
    }); 
}; 

$(function() { 
    $('#city').filterOn('#country', { 
     'default': [], 
     'LK':['LK'],'SY':['SY'],'KE':['KE'],'KH':['KH'],'MN':['MN'],'SN':['SN'],'JO':['JO'],'SE':['SE'],'GB':['GB'],'AT':['AT'],'IL':['IL'],'PY':['PY'],'JM':['JM'],'MX':['MX'],'CL':['CL'],'CA':['CA'],'BG':['BG'],'MC':['MC'],'PR':['PR'],'LB':['LB'],'EC':['EC'],'PW':['PW'],'GU':['GU'],'MK':['MK'],'RE':['RE'],'BW':['BW'],'LY':['LY'],'TG':['TG'],'TH':['TH'],'MY':['MY'],'ES':['ES'],'DK':['DK'],'DO':['DO'],'BZ':['BZ'],'NI':['NI'],'VE':['VE'],'LV':['LV'],'AZ':['AZ'],'MD':['MD'],'AE':['AE'],'MT':['MT'],'SZ':['SZ'],'YE':['YE'],'SV':['SV'],'MW':['MW'],'GF':['GF'],'BD':['BD'],'LI':['LI'],'SM':['SM'],'BY':['BY'],'MZ':['MZ'],'IR':['IR'],'PK':['PK'],'RU':['RU'],'MU':['MU'],'TW':['TW'],'PT':['PT'],'NG':['NG'],'GR':['GR'],'CH':['CH'],'KW':['KW'],'LU':['LU'],'CZ':['CZ'],'HR':['HR'],'AR':['AR'],'EG':['EG'],'CR':['CR'],'US':['US'],'LT':['LT'],'KZ':['KZ'],'RS':['RS'],'EE':['EE'],'SG':['SG'],'FM':['FM'],'AL':['AL'],'ML':['ML'],'UG':['UG'],'ZA':['ZA'],'MM':['MM'],'AU':['AU'],'FJ':['FJ'],'IT':['IT'],'AD':['AD'],'NO':['NO'],'BR':['BR'],'UY':['UY'],'GT':['GT'],'PF':['PF'],'SC':['SC'],'BB':['BB'],'ME':['ME'],'LA':['LA'],'CK':['CK'],'KY':['KY'],'GA':['GA'],'SA':['SA'],'VN':['VN'],'PH':['PH'],'KR':['KR'],'JP':['JP'],'VU':['VU'],'NZ':['NZ'],'TN':['TN'],'IE':['IE'],'SI':['SI'],'SR':['SR'],'FI':['FI'],'AW':['AW'],'NP':['NP'],'FO':['FO'],'SD':['SD'],'ID':['ID'],'CN':['CN'],'MV':['MV'],'UZ':['UZ'],'HK':['HK'],'DZ':['DZ'],'DE':['DE'],'OM':['OM'],'FR':['FR'],'SK':['SK'],'PL':['PL'],'BS':['BS'],'GP':['GP'],'CO':['CO'],'BO':['BO'],'UA':['UA'],'AN':['AN'],'TO':['TO'],'GE':['GE'],'ET':['ET'],'BM':['BM'],'CY':['CY'],'GM':['GM'],'MA':['MA'],'HU':['HU'],'HN':['HN'],'PE':['PE'],'RO':['RO'],'AM':['AM'],'NC':['NC'],'ZM':['ZM'],'IN':['IN'],'TZ':['TZ'],'NL':['NL'],'BE':['BE'],'TR':['TR'],'NA':['NA'],'GD':['GD'],'QA':['QA'],'IS':['IS'],'BH':['BH'],'ZW':['ZW'],'GI':['GI'],'CM':['CM'] 
    }); 
}); 

//]]> 
</script> 

然後我有一個構建在PHP從數據庫表

<select id="country" name="country"> 
<option value="">---------</option> 
<option value="LK">Sri Lanka</option> 
<option value="SY">Syria</option> 
<option value="KE">Kenya</option> 
<option value="KH">Cambodia</option> 
<option value="MN">Mongolia</option>  
<option value="SN">Senegal</option> 
<option value="PY">Paraguay</option> 
<option value="SE">Sweden</option> 
</select> 

<select id="city" name="city"> 
    <option value="3439389">Asuncion</option> 
    <option value="3439352">Bella Vista</option> 
    <option value="3439101">Ciudad Del Este</option> 
    <option value="3438735">Encarnacion</option> 
</select> 

基本上這是所有通過與整個頁面獲得兩個選擇,這是查詢的樣子:

&country=PY &city=3439101 

什麼,我需要做的是創造另一個變量稱爲citycode,給城市數量到並使用所顯示的文字作爲城市值,因此它看起來像這樣

&country=PY &city=Ciudad Del Este &citycode=3439101 

但我怎麼可以創建字段& citycode並將html選項文本指定爲城市變量的值?

感謝

回答

1
$('#country option:selected').val(); // returns LK 
$('#country option:selected').text(); // returns Sri Lanka 

$('#city option:selected').val(); // returns 3439389 
$('#city option:selected').text(); // returns Asuncion 

有了這些知識,你can add hidden input to POST/GET request

+0

這仍然不能幫助他實際發佈城市名稱上的數據。如果他想以正常方式發佈表單,他需要使用隱藏字段。如果通過AJAX發佈,他可以使用隱藏字段和'serialize'整個表單進行發佈或手動構建要使用的查詢字符串。 –

+0

@MikeBrant [這根本就沒有問題](http://stackoverflow.com/questions/2530635/jquery-add-additional-parameters-on-submit-not-ajax) – Peter

+0

@PeterSyzmkowski是的,這當然很容易這樣做,你可能也想用這些信息來更新你的答案。就目前而言,答案只是告訴他如何提取值,而不是如何實際發佈它們。 –

0

你最好的選擇可能讓隱藏提起叫你使用jQuery onchange事件對城市select填充值到city。然後您需要將您的city選擇的名稱更改爲citycode