Javascript 页面重新加载时未运行ajax函数
好的,我使用的是MVC yii框架。目前,我有一个与类别相关的详细信息表 所以我有3个类别,一个主类别,一个子类别和子类别。这些下拉列表选择选项是通过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
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();