Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php OSClass中的JavaScript在Firefox中父类无效后显示子类别_Php_Javascript_Osclass - Fatal编程技术网

Php OSClass中的JavaScript在Firefox中父类无效后显示子类别

Php OSClass中的JavaScript在Firefox中父类无效后显示子类别,php,javascript,osclass,Php,Javascript,Osclass,我正在使用OSClass建立一个网站,该网站将包含多个分类广告。不幸的是,一些脚本与Firefox/IE不兼容,因此我需要跟踪这些错误 脚本应该是这样的: 你为你的广告选择类别 选择类别后,脚本将检查子类别,并将在其中添加另一个框来选择子类别 下面是.js文件: var is_loading = true ; function fill_subcategory_select ( id ) { var category = $("select.category") ; var subcat

我正在使用OSClass建立一个网站,该网站将包含多个分类广告。不幸的是,一些脚本与Firefox/IE不兼容,因此我需要跟踪这些错误

脚本应该是这样的:

  • 你为你的广告选择类别
  • 选择类别后,脚本将检查子类别,并将在其中添加另一个框来选择子类别
  • 下面是.js文件:

    var is_loading = true ;
    
    function fill_subcategory_select ( id ) {
    var category    = $("select.category") ;
    var subcategory = $("select.subcategory") ;
    
    // reset subcategory select
    subcategory.html("") ;
    
    console.log(twitter_theme.categories["id_" + id]) ;
    // check that the category has subcategories
    if( typeof twitter_theme.categories["id_" + id] === "undefined" ) {
        console.log("[fill_subcategory_select] hide subcategory") ;
        subcategory.append( $("<option>").attr('value', id) ) ;
        subcategory.css("display", "none") ;
        $("select.subcategory").trigger('change') ;
        return true;
    }
    
    subcategory.html()
    subcategory.append( $("<option>").attr('value', id).html(twitter_theme.text_select_subcategory) ) ;
    $.each(twitter_theme.categories["id_" + id], function(key, value) {
        console.log("[fill_subcategory_select] subcategory { id: " + value.id + ", slug: " + value.slug + ", name: " + value.name + " }") ;
        subcategory.append( $("<option>").attr('value', value.id).html(value.name) ) ;
    }) ;
    subcategory.css("display", "") ;
    return true;
    }
    
    var=true;
    函数填充\子类别\选择(id){
    变量类别=$(“select.category”);
    var子类别=$(“select.subcategory”);
    //重置子类别选择
    html(“”);
    log(twitter_主题.categories[“id_”+id]);
    //检查类别是否有子类别
    if(推特主题类别的类型[“id”+id]=“未定义”){
    log(“[fill_subcategory_select]hide subcategory”);
    subcategory.append($(“”)attr('value',id));
    css(“显示”、“无”);
    $(“select.subcategory”).trigger('change');
    返回true;
    }
    subcategory.html()
    subcategory.append($(“”).attr('value',id).html(twitter\u theme.text\u select\u subcategory));
    $.each(twitter\u主题.categories[“id\u”+id],函数(键,值){
    log(“[fill_subcategory_select]subcategory{id:+value.id+”,slug:+value.slug+”,name:+value.name+“}”);
    subcategory.append($(“”).attr('value',value.id).html(value.name));
    }) ;
    css(“display”、“”);
    返回true;
    }
    
    以下是实际表格:

    <script type="text/javascript">
            twitter_theme.text_select_subcategory = "<?php _e('Select a subcategory...', 'twitter_bootstrap') ; ?>" ;
            twitter_theme.category_selected_id    = "<?php echo item_selected_category_id() ; ?>" ;
            twitter_theme.subcategory_selected_id = "<?php echo item_selected_subcategory_id() ; ?>" ;
    </script>
    
    <!-- category input -->
    <div class="clearfix">
    <label><?php _e('Category', 'twitter_bootstrap') ; ?></label>
    <div class="input">
    <?php item_category_select( __('Select a category', 'twitter_bootstrap') ) ; ?>
    </div>
    </div>
    <!-- category input end -->
    
    
    twitter_theme.text_select_subcategory=“”;
    twitter\u主题类别\u选择了\u id=“”;
    twitter_theme.subcategory_selected_id=“”;
    

    Firefox中出现的情况是,当您选择一个类别时,子类别列表根本不会显示,这会破坏注册表表单的功能,因为它会给出错误消息:“无效类别”。

    最后,我发现了问题所在。问题出现在
    item\u category\u select\u js()
    函数中。您可以在
    /twitter\u bootstrap/functions.php
    中找到此函数。以下是新代码:

    function item_category_select_js() {
        ?>
        <script type="text/javascript">
            twitter_theme.categories = {} ;
        <?php
        $aCategories = osc_get_categories() ;
        foreach($aCategories as $category) {
            if( is_array($category['categories']) && (count($category['categories']) > 0) ) {
                echo 'twitter_theme.categories.id_' . $category['pk_i_id'] . ' = {' . PHP_EOL ;
                for($i = 0; $i < count($category['categories']); $i++) {
                    echo $category['categories'][$i]['pk_i_id'] . ': { id: ' . $category['categories'][$i]['pk_i_id'] . ', slug: "' . addslashes($category['categories'][$i]['s_slug']) . '", name: "' . addslashes($category['categories'][$i]['s_name']) . '"' ;
                    if( $i == (count($category['categories']) - 1) ) {
                        echo '}' . PHP_EOL ;
                    } else {
                        echo '} ,' . PHP_EOL ;
                    }
                }
                echo '} ;' ;
            } else {
                echo 'twitter_theme.categories.' . $category['s_slug'] . ' = { } ;' . PHP_EOL  ;
            }
        }
        ?>
        </script>
        <?php
    }
    
    function item\u category\u select\u js(){
    ?>
    twitter_theme.categories={};
    
    你试过用firebug或类似的工具调试它吗?不工作意味着什么,在哪里?如果你直截了当地说工作不好,我们能帮你什么?firebug/FF+开发者工具/IEI很抱歉,我现在已经更新了这个问题。问题是当有人选择一个类别时,子类别列表不会激活。@JaozaMedia我无法报告我尝试过Twitter主题1.2版:IE8(Win.XP)、FF8(MAC)、Chrome18(MAC)。