JavaScript+PHP 应用一:网页制作中双下拉菜单的动态实现
2010-09-14 13:30:38 来源:WEB开发网这样每次显示文档时,PHP部分将解释为Javascript语言,当单击主菜单时,子菜单将自动更新。同样道理,读者可以根据此思路,创造更复杂的多重菜单选项。
最后,笔者简要介绍一下,如何实现在表单提交后,仍然保持菜单项上一次的状态。技巧其实很多,而笔者采用的是隐含变量法。在表单中添加如下代码:
<input type="hidden" name="h1">
<input type="hidden" name="h2">
我们只需要在Form表单的OnSubmit()事件中给每个隐含变量赋值即可。即:
document.all("h1").value=document.all("mmenu").selectedIndex;
document.all("h2").value=document.all("smenu").selectedIndex;
为了利用隐含变量,在文档的Body的onLoad()事件中,我们利用PHP方法(也可用其它方法)来控制菜单的显示:
<?php
if (!isset($h1)){ //只需要判断$h1
$h1 = 0;
$h2 = 0;
}
echo "document.all("mmenu").selectedIndex=".$h1.";ntt";
echo "document.all("mmenu").click();ntt";
echo "document.all("mmenu").selectedIndex=".$h1.";ntt";
echo "document.all("smenu").selectedIndex=".$h2;
?>
至此,我们已经实现双下拉菜单的动态实现方法。
$id = $mmenu[$i];
$DB->query("select menu from class where menuid ='".$id."'");
//假设菜单选项存放在class表的menu字段,menuid用来标识menu
while ($DB->next_record()){
$smenu[] = """.$DB->f("menu").""";
}
if (isset($smenu) && is_array($smenu)){
$str = implode(",",$smenu);
echo "menu["$id"] =Array($str);ntt";
//完成menu联合数组的填充
unset($smenu); //删除smenu变量
}
}
?> //结束PHP程序
with (document) {
id=all("mmenu").value; //获得主菜单的value值
arr_menu=menu[id];
for(i=all("smenu").options.length;i>=0;i--){
all("smenu").options.remove(i); //需要清除原有的项目
}
if (arr_menu.length==0){
return;
}
obj=createElement("option");
obj.text=arr_class[i];
all("smenu").options.add(obj);
}
}
}
这样每次显示文档时,PHP部分将解释为Javascript语言,当单击主菜单时,子菜单将自动更新。同样道理,读者可以根据此思路,创造更复杂的多重菜单选项。
最后,笔者简要介绍一下,如何实现在表单提交后,仍然保持菜单项上一次的状态。技巧其实很多,而笔者采用的是隐含变量法。在表单中添加如下代码:
<input type="hidden" name="h1">
<input type="hidden" name="h2">
我们只需要在Form表单的OnSubmit()事件中给每个隐含变量赋值即可。即:
document.all("h1").value=document.all("mmenu").selectedIndex;
document.all("h2").value=document.all("smenu").selectedIndex;
为了利用隐含变量,在文档的Body的onLoad()事件中,我们利用PHP方法(也可用其它方法)来控制菜单的显示:
<?php
if (!isset($h1)){ //只需要判断$h1
$h1 = 0;
$h2 = 0;
}
echo "document.all("mmenu").selectedIndex=".$h1.";ntt";
echo "document.all("mmenu").click();ntt";
echo "document.all("mmenu").selectedIndex=".$h1.";ntt";
echo "document.all("smenu").selectedIndex=".$h2;
?>
至此,我们已经实现双下拉菜单的动态实现方法。
obj=createElement("option");
Tags:JavaScript PHP 应用
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接