ajax函数没有在页面重载上运行

时间:2015-04-09 09:15:23

标签: javascript php jquery ajax model-view-controller

好的我正在使用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;
                }
            });
    }

好的,所以这基本上将第一个类别的值发送给我的控制器。

public function actionSubcategories()
{
   if(Yii::$app->request->post('firstcategory')){
        $firstcategory = Yii::$app->request->post('firstcategory');
        // SELECT * FROM `subcategory` WHERE `parent_id` = $firstcategory
        $subcategory = Subcategory::findSubcategory($firstcategory);

    }    
    return \yii\helpers\Json::encode($subcategory);
}

好的,所以这会回到我的视图,并使用与主类别对应的正确子类别填充子类别下拉列表。

这很好是工作正常,获取子类别的ajax请求几乎与上面的相同所以我不会包含这个。

所以当我按下提交按钮时。它抓取每个类别的所有值,然后它将填充一个表格,其中包含与特定类别相对应的详细信息。

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

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

 getSubcategory();

然后应该再次循环整个过程,但事实并非如此。我坚持这个可以任何人帮助。

如果您需要更多代码或任何内容,请询问,我会更新我的问题。

0 个答案:

没有答案