php - Jquery/PhP/Joomla 选择两个组合框之一不会更新

标签 php jquery joomla drop-down-menu

我正在制作一个 Joomla 组件,该组件在页面上有 3 个 comboboxes/selects。一个与语言有关,两个与学科有关。如果您更改语言,其他两个将填充相同的数据(所选语言的主题)selectbox 的名称不同但其他方面相同。

其中一个主题框出现错误(因此 url 变为红色),但没有任何逻辑会给出错误。在 Firebug 中,我得到了一个没有另一个的 HTML,这个得到了更新,但另一个没有返回任何内容。

如果我在 firebug 中右键单击出现错误的那个,然后“再次发送”,它将正常加载。他们是时间问题吗?

语言选择框的更改事件:

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 文件中有一个到数据库的连接以获取信息以构建选择框。我为此使用了一个功能,因为它使我的所有选择框都可以。选择框出现问题的唯一地方是在有 2 个选择的页面上,当第三个选择更改时需要更改这些选择。我猜这是在 Jquery 的某个地方出了问题。我认为这与时间有关。但我愿意接受所有建议。

谢谢。

更新:

没有 ID 和名称字段不同。 他们被命名为: 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');


        }
    });  

}

调用 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 的类,其中有一个创建组合框的函数。 ld_html::ld_create_cmb_html() 它获取表名、id 字段、namefield 和可选的 where 子句。

如果只有一个组合框需要更新,则一切正常。当有两个时它会出现问题。

感谢您的帮助!

最佳答案

我假设您的两个选择框具有相同的 ID #ldlinksubjects,因此它们可能会随机失败或两者都不起作用。能不能再表达一下,或者给个完整的JS代码?

关于php - Jquery/PhP/Joomla 选择两个组合框之一不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310904/

相关文章:

javascript - 我想从最后一个 <li> 标签中删除 <hr> 标签

php - Joomla3.6 fatal error : require_once(): Failed opening required

php - 跟踪错误行和文件nr的正确方法。在使用自定义错误处理方法的自定义函数中使用debug_backtrace()

php - 任何用 C 编写的 PHP IDE?

php - 用列数据替换括号内的字符串

jquery - 如何将屏幕分成 4 个相等的 div,当您将鼠标悬停在它们上时,它们会展开?

php - mysql 到 csv 而不使用 mysql 的 INTO OUTFILE

javascript - Google Charts Y 轴未排序

javascript - IE 中的图像 slider 问题 - Bug?

apache - 当我访问 HTTPS 时,网站一直重定向到 HTTP,原因不明