Javascript 页面重新加载时未运行ajax函数

Javascript 页面重新加载时未运行ajax函数,javascript,php,jquery,ajax,model-view-controller,Javascript,Php,Jquery,Ajax,Model View Controller,好的,我使用的是MVC yii框架。目前,我有一个与类别相关的详细信息表 所以我有3个类别,一个主类别,一个子类别和子类别。这些下拉列表选择选项是通过ajax请求从数据库填充的 因此,在更改主类别时,它将运行此功能 function getSubcategory(){ var firstcategory = $('#casesearch-category').val(); var childcategory = document.getEleme

好的,我使用的是MVC yii框架。目前,我有一个与类别相关的详细信息表

所以我有3个类别,一个主类别,一个子类别和子类别。这些下拉列表选择选项是通过ajax请求从数据库填充的

因此,在更改主类别时,它将运行此功能

    function getSubcategory(){

        var firstcategory = $('#casesearch-category').val();
            var childcategory = document.getElementById('casesearch-childcategory');
            childcategory.options.length = 0;
            $.ajax({
                url: '<?php echo \Yii::$app->getUrlManager()->createUrl('cases/subcategories') ?>',
                type: 'POST',
                dataType: 'json',
                data: { 
                    firstcategory: firstcategory 
                },
                success: function(data) {      

                    var subcategory = document.getElementById('casesearch-subcategory');
                    //if select is changed again, make the options length 0 so that it gets rid of previous appends.
                    subcategory.options.length = 0;


                    for(var i=0; i<data.length; i++){
                        subcategory.options[i] = new Option (data[i].name);
                        subcategory.options[i].value = data[i].subcategory_id;
                    }
                    subcategory.options.selectedIndex = -1;
                }
            });
    }
好的,然后回到我的视图,用与主类别对应的正确子类别填充子类别下拉列表

这很好,也很好,获取子类别的ajax请求与上面的请求基本相同,所以我不包括这个

最后,当我按下提交按钮时。它获取每个类别的所有值,然后用对应于特定类别的详细信息填充一个表

这很好,但问题是,当页面提交时,我不会让下拉列表中已经填充了发布位置的值。但是没有在php中手动设置

我将第一个类别发送到视图,然后调用

 getSubcategory();
然后应该再次循环整个过程,但事实并非如此。我被这件事难住了,谁能帮我一下吗

如果您需要更多代码或其他信息,请询问,我将更新我的问题。

您不能像设置subcategory.options.length=0等那样设置长度。它是只读属性。您可以设置selectedIndex,但该方法采用的是字符串,而不是数字:options.selectedIndex='-1'。您的提交是否由ajax处理?如果没有,您将不得不以某种方式将值从php传递回getSubcategory。
 getSubcategory();