JS怎么生成动态关联option

是两个下拉列表第一个选择不同数据的时候第二个数据会变数据由后台传输数据也是可变的请问这个JS要怎么写!!!急!!!前台和JS代码都要!谢谢!... 是两个下拉列表 第一个选择不同数据的时候 第二个数据会变 数据由后台传输 数据也是可变的 请问这个JS要怎么写!!!急!!!
前台和JS代码都要!谢谢!
展开
 我来答
shgtdaicooper
推荐于2017-09-05 · 超过66用户采纳过TA的回答
知道小有建树答主
回答量:131
采纳率:100%
帮助的人:80.6万
展开全部
这个用js 的ajax实现,这个是3级的 级联菜单。前台用jquery,后台用 php写的,希望对你有帮助。
var category_0= <?php echo isset($_POST['categories_0'])?$_POST['categories_0']:"0";?>;
var category_1=<?php echo isset($_POST['categories_1'])?$_POST['categories_1']:"0";?>;
var select_template=<?php echo isset($_POST['templates'])?$_POST['templates']:"0";?>;

//初始值 categorie_id=0;
var parms="categories_id="+0;
$.ajax({
url:"ajax_template.php",
data:parms,
async:false,
type:"get",
datatype:"json",
success:function(msg){
var content_arr=eval(msg);
var categories_arr=eval(content_arr[0]);
var template_arr=eval(content_arr[1]);
var op="<option value='0'>SELECT shops..</option>"
$.each(categories_arr,function(k,v){
if(k==category_0){
op+="<option value='"+k+"' selected>"+v+"</option>";
}else{
op+="<option value='"+k+"' >"+v+"</option>";
}
});
$("#categories_0").append(op);
}
});
//如果categories_1有选择某个值,则刷新后选择上一次的值作为刷新后的初始值。
if(category_1>0){
var parms="categories_id="+category_0;
$.ajax({
url:"ajax_template.php",
data:parms,
async:false,
type:"get",
datatype:"json",
success:function(msg){
var content_arr=eval(msg);
var categories_arr=eval(content_arr[0]);
var template_arr=eval(content_arr[1]);
var op="";
$.each(categories_arr,function(k,v){
if(k==category_1){
op+="<option value='"+k+"' selected>"+v+"</option>";
}else{
op+="<option value='"+k+"' >"+v+"</option>";
}
});
$("#categories_1").append(op);
}
});
}
//如果templates有选择某个值,则刷新后选择上一次的值作为刷新后的初始值。
if(select_template>0){
var parms="categories_id="+category_1;
$.ajax({
url:"ajax_template.php",
data:parms,
async:false,
type:"get",
datatype:"json",
success:function(msg){
var content_arr=eval(msg);
var categories_arr=eval(content_arr[0]);
var template_arr=eval(content_arr[1]);
var op="";
$.each(template_arr,function(k,v){
if(k==select_template){
op+="<option value='"+k+"' selected>"+v+"</option>";
}else{
op+="<option value='"+k+"' >"+v+"</option>";
}
});
$("#templates").append(op);
}
});
}
//categorie_0值改变,影响后面的两个 categorie_1,template选择框
$("#categories_0").bind("change",function(){
var select_val=$("#categories_0").val()
if(select_val>0){
$("#categories_1").empty();
$("#templates").empty();
var parms="categories_id="+select_val;
$.ajax({
url:"ajax_template.php",
data:parms,
async:false,
type:"get",
datatype:"json",
success:function(msg){
var content_arr=eval(msg);
var categories_arr=eval(content_arr[0]);
var template_arr=eval(content_arr[1]);
var op=""
$.each(categories_arr,function(k,v){
op+="<option value='"+k+"' >"+v+"</option>";
});
$("#categories_1").append(op);
}
});
}else{
$("#categories_1").empty();
$("#templates").empty();
}
});

//categorie_0,categorie_1值改变,影响后面的template选择框
$("#categories_0,#categories_1").bind("change",function(){
createTemplate($("#categories_1").val() );
});

function createTemplate(category_id){
$("#templates").empty();
var parms="categories_id="+category_id;
$.ajax({
url:"ajax_template.php",
data:parms,
async:false,
type:"get",
datatype:"json",
success:function(msg){
var content_arr=eval(msg);
var categories_arr=eval(content_arr[0]);
var template_arr=eval(content_arr[1]);
var op="";
$.each(template_arr,function(k,v){
op+="<option value='"+k+"' >"+v+"</option>";
});
$("#templates").append(op);
}
});

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式