2012-07-03 58 views
3

我正在製作一個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子句。

這一切工作正常,如果只有一個組合框需要更新。有兩個時它會出現問題。

感謝您的幫助!

回答

0

我想你的兩個selectbox有相同的ID #ldlinksubjects,因此他們可能會隨機失敗或者兩者根本不起作用。你可以更具表現力,或提供完整的JS代碼?

相關問題