我正在製作一個Joomla組件,它有3 comboboxes/selects
在頁面上。一個有語言,兩個有主題。如果您更改語言,另外兩個填寫相同的數據(使用所選語言的主題)selectbox
的名稱是不同的,但在其他方面相同。Jquery/PhP/Joomla選擇兩個組合框之一沒有得到更新
我得到一個主題框錯誤(因此URL變紅),但沒有邏輯在哪一個會給出錯誤。在Firebug中,我得到了一個沒有另一個的HTML回來,這一個得到更新,但另一個沒有給回。
如果我在錯誤的那個螢火蟲上點擊右鍵,然後「重新發送」,它會正常加載。他們是否有時間問題?
的語言選擇框的Change事件:
jQuery('#cmbldcoi_ldlink_language').bind('change', function() {
var cmbLangID = jQuery('#cmbldcoi_ldlink_language').val();
if (cmbLangID !=0) {
getSubjectCmb_lang(cmbLangID, 'cmbldcoi_ldlink_subjects', '#ldlinksubjects');
}
});
功能請求php文件創建HTML的選擇:
function getSubjectCmb_lang(langID, cmbName, DivWhereIn) {
var xdate = new Date().getTime();
var url = 'index.php?option=com_ldadmin&view=ldadmin&format=raw&task=getcmbsubj_lang&langid=' + langID + '&cmbname=' + cmbName + '&'+ xdate;
jQuery(DivWhereIn).load(url, function(){
});
}
而在PHP文件有一個連接到數據庫以生成信息來構建選擇框。我用這個函數可以,因爲它使我的選擇框成爲可能。選擇框出現問題的唯一地方是有兩個選擇的頁面,當第三個選擇框更改時需要更改。我的猜測是在Jquery的某個地方出現這種情況。我認爲這與時間有關。但我對所有的訴求都是開放的。
Thanx。
UPDATE:
沒有標識和名稱字段是不同的。 它們被命名爲: cmbldcoi_child cmbldcoi_parent
這裏是我的代碼:
第一個下拉框,這使得其他兩個改改事件:
jQuery('#cmbldcoi_language_chain_subj').bind('change', function(){
var langID = jQuery('#cmbldcoi_language_chain_subj').val();
if (langID != 0){
getSubjectCmb_lang(langID, 'cmbldcoi_child', '#div_cmbldcoi_child');
getSubjectCmb_lang(langID, 'cmbldcoi_parent', '#div_cmbldcoi_parent');
}
});
}
功能wicht調用php文件從數據庫獲取信息:
function getSubjectCmb_lang(langID, cmbName, DivWhereIn){
var xdate = new Date().getTime();
var url = 'index.php?option=com_ldadmin&view=ldadmin&format=raw&task=getcmbsubj_lang&langid=' +
langID + '&cmbname=' + cmbName + '&'+ xdate;
jQuery(DivWhereIn).load(url, function(){
});
}
PHP代碼 功能getcmbsubj_lang(){
$langid = JRequest::getVar('langid');
if ($langid > 0){
$langid = JRequest::getVar('langid');
}else{
$langid = 1;
}
$cmbName = JRequest::getVar('cmbname');
//$lang_sufx = self::get_#__sufx($langid);
print ld_html::ld_create_cmb_html($cmbName, '#__ldcoi_subjects','id', 'subject_name', " WHERE id_language={$langid} ORDER BY subject_name");
}
有一類至極稱爲ld_html至極中有一個創建組合框的funnction。 ld_html :: ld_create_cmb_html() 它獲取表名,id字段,namefield和可選的where子句。
這一切工作正常,如果只有一個組合框需要更新。有兩個時它會出現問題。
感謝您的幫助!