很多朋友都在问题这个问题,大我都初学者了,今天我就把我自己的写的发出来吧,各位看了别笑啊.先看看php与js混合代码.
<script>
function GetObjId(ObjName)
{
//alert(document.all.tags('select')[i].name);
for(i = 0; i < document.all.tags('select').length; i++)
{
if (document.all.tags('select')[i].name == ObjName) {return(i); break;}
}
return(-1);
}
function Do_ToDo_Change(ObjName1, ObjName2, StatInt)
{
//document.forms[0].elements[0].name
var id1, id2, tempstr, tempint
var my_array = new Array();
<?php
$list='';
for($i=1;$i<=12;$i++){
$osql ="Select * from gx_newtype where gx_masterid=$i";
$resul =mysql_query($osql) or die(mysql_error());
while($res =mysql_fetch_array($resul)){
$list=$list.$res['id'].'|'.$res['gx_typename'].',';
}
?>
my_array[<?php echo $i-1; ?>] = '<?php echo $list;?>';
<?php
$list='';
}
?>
id1 = GetObjId(ObjName1);
id2 = GetObjId(ObjName2);
tempint = document.all.tags('select')[id2].length;
for(i = 1; i < tempint; i++) {document.all.tags('select')[id2].options[1] = null}
if (document.all.tags('select')[id1].selectedIndex > StatInt - 1)
{
tempstr = my_array[document.all.tags('select')[id1].selectedIndex - 1].split(",");
for(i = 1; i <= tempstr.length; i++) {document.all.tags('select')[id2].options[i] = new Option(tempstr[i - 1].substr(tempstr[i - 1].indexOf("|") + 1), tempstr[i - 1].substr(0,tempstr[i - 1].indexOf("|")))}
}
}
</script>
看了上面的代码后有些朋友可能会有些问号?就是这样怎么行呢?js怎么能和php这样放在一起呢,我想如果你真的提出这个问题了,我想你大概不明白,服务器端脚本在客户端脚本之前执行吧?现在明白了吗?
下面来看我们是怎么让它们级联的.
<select name="select" id="select" onchange=Do_ToDo_Change('select','select2','1')>
<?php
$sql="Select * from fff order by master_order asc";
$result=mysql_query($sql);
while($rs =mysql_fetch_array($result)){
echo("<option value=".$rs['id'].">".$rs['master_name']."</option>");
}
?>
</select>//这里是一级
<select name="select2" value="" id="select2">
<option value="0">--选择子类--</option>
</select> //这里是子菜单 ,
我们来看看效果图吧:
注:原创文章,转载请注明:www.111cn.net