萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> JavaScript+PHP應用一:網頁

JavaScript+PHP應用一:網頁

JavaScript+PHP 應用一:網頁制作中雙下拉菜單的動態實現
---摘自互聯網
在網頁制作中,常常遇到這種情況,通過主下拉菜單的選擇,動態的生成子下拉菜單。例如:在主菜單中有“焦點新聞”、“生活時尚”、“心情故事”三個選項,通過“焦點新聞”的選擇,子菜單自動生成如“國內”、“國際”、“體育”、“文娛”,依此類推。
利用javascript,我們可以輕松實現上述效果。但問題是,如果菜單中的選項是從數據庫(或其他文件)中動態提取,實現起來就並不是輕而易舉的了。筆者根據自己的實際經驗,向大家介紹一種利用javascript + php的實現方法,文中的數據庫采用mysql。在本例中,筆者還將介紹在每一次表單提交之後,如何返回上一次菜單選項的選擇狀態。
文章中所介紹的php的作用,一是用來從數據庫中提取菜單選項,另一作用,就是用來生成javascript代碼。讀者可以采用自己熟悉的解釋型語言,如asp。
為了簡化代碼,筆者假設主菜單已經通過html構造,由於子菜單需要動態設計,所以只繪制了基本框架,html代碼如下:
<select name="mmenu" onchange="java script:setmenu()"> //主菜單設計
<option value="a">焦點新聞</option>
<option value="b">生活時尚</option>
<option value="c">心情故事</option>
//value必須與下文的menu數組相一致
</select>
<select name="smenu"> //子菜單設計
</select>
我們需要考慮的是,菜單的onchange()事件需要完成哪些步驟。其大致過程是,根據主菜單的選項,構造子菜單項目。而子菜單的項目文字最好事先設定。根據這個思路,筆者采用了javascript中的聯合數組記錄子菜單選項,並由php在加載時自動生成。由此,筆者設計了如下的javascript函數setmenu():
function setmenu(){
menu=array("a","b","c"); //構造menu聯合數組
<?php //開始php程序
$db = new my_db();
$db->database = "***"; //構造新的mysql連接,這裡使用了phplib
$mmenu = array("a","b","c"); //這裡筆者作了簡化
for ($i=0;$i<count($mmenu);$i++){
$id = $mmenu[$i];
$db->query("select menu from class where menuid ='".$id."'");
copyright © 萬盛學電腦網 all rights reserved