您好,欢迎访问一九零五行业门户网

html+js+PHP(使用了smarty模板技术)+mysql实现二级动态下拉列表(select)

目标
需要的是在选择第一个select下拉列表后,将选择的内容传送到php页面。在php页面中通过查询数库,得到第二个select需要显示的option的值,并在select中显示。
方案
1  利用ajax上传数据到php,由于利用了smarty模板技术,可以直接给模板中的变量赋值,这样就可以不用通过ajax接收返回值再经过处理输出了。
由于这个php页面没有包含在其他php页面里,是独立的。这样就造成无法赋值。
2  通过ajax接收返回值,这里的返回值就是以上数据库查询的结果。
    通过json_encode()将其转化为json格式,然后输出。
    js中将responsetext字符串转化为json格式json.parse()函数实现。
    遍历数组,并添加option给select。
本次使用的是方案2
部分代码
js代码:
function get_value(form){ var scid=sub_class.value;//运算类型号//---------------------------------------//使用ajax发送选中的运算类 var url = query_subject.php?scid=+scid; xmlhttp.onreadystatechange = content;// var url = query_subject.php?; xmlhttp.open(get,url,true); xmlhttp.send(null);//--------------------------------------- function content(){ if(xmlhttp.readystate==4){ if(xmlhttp.status==200){ var sel=document.getelementbyid(sub_name); var rst=json.parse(xmlhttp.responsetext);//将字符串转化为数组 for(var i=0; i
php代码:
?phpheader ( content-type: text/html; charset=utf-8 ); //设置文件编码格式require_once(system/system.inc.php); //包含配置文件$scid=$_get['scid'];$rst=null;if($scid){ $sql=select sid, s_name from subject where scid='$scid'; $rst=$admindb->execsql($sql, $conn);}echo(json_encode($rst));?>
其它类似信息

推荐信息