好的我正在使用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();
然后应该再次循环整个过程,但事实并非如此。我坚持这个可以任何人帮助。
如果您需要更多代码或任何内容,请询问,我会更新我的问题。