JavaScript+PHP 應用一:網頁製作中雙下拉選單的動態實現 (轉)
在網頁製作中,常常遇到這種情況,透過主下拉選單的選擇,動態的生成子下拉選單。例如:在主選單中有“焦點新聞”、“生活時尚”、“心情故事”三個選項,透過“焦點新聞”的選擇,子選單自動生成如“國內”、“國際”、“體育”、“文娛”,依此類推。:namespace prefix = o ns = "urn:schemas--com::office" />
利用script,我們可以輕鬆實現上述效果。但問題是,如果選單中的選項是從(或其他)中動態提取,實現起來就並不是輕而易舉的了。筆者根據自己的實際,向大家介紹一種利用 + 的實現方法,文中的資料庫採用My。在本例中,筆者還將介紹在每一次表單提交之後,如何返回上一次選單選項的選擇狀態。
文章中所介紹的PHP的作用,一是用來從資料庫中提取選單選項,另一作用,就是用來生成JavaScript程式碼。讀者可以採用自己熟悉的解釋型語言,如。
為了簡化程式碼,筆者假設主選單已經透過HTML構造,由於子選單需要動態設計,所以只繪製了基本,HTML程式碼如下:
< name="mmenu" onChange="javascript:setMenu()"> //主選單設計
//value必須與下文的menu陣列相一致
我們需要考慮的是,選單的OnChange()事件需要完成哪些步驟。其大致過程是,根據主選單的選項,構造子選單專案。而子選單的專案文字最好事先設定。根據這個思路,筆者採用了JavaScript中的聯合陣列記錄子選單選項,並由PHP在載入時自動生成。由此,筆者設計瞭如下的JavaScriptsetMenu():
function setMenu(){
menu=Array("a","b","c"); //構造menu聯合陣列
開始PHP
<p>$ = new My_DB();
$DB->Database = "***"; //構造新的連線,這裡使用了PHPLIB
$mmenu = array("a","b","c"); //這裡筆者作了簡化
for ($i=0;$i $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; } for(i=0;i obj=createElement("option"); obj.text=arr_class[i]; all("smenu").options.add(obj); } } } 這樣每次顯示文件時,PHP部分將解釋為Javascript語言,當單擊主選單時,子選單將自動。同樣道理,讀者可以根據此思路,創造更復雜的多重選單選項。 最後,筆者簡要介紹一下,如何實現在表單提交後,仍然保持選單項上一次的狀態。技巧其實很多,而筆者採用的是隱含變數法。在表單中新增如下程式碼: 我們只需要在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; ?> 至此,我們已經實現雙下拉選單的動態實現方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987323/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 選擇select下拉選單網頁跳轉網頁
- 純css製作導航下拉選單CSS
- JavaScript動態操作select下拉選單JavaScript
- 二級下拉導航選單製作詳解
- 函式節流實現滑動下拉選單函式
- Chrome實現自動化測試:錄製回放網頁動作Chrome網頁
- HTML簡單網頁製作HTML網頁
- 類似dreamweaver在VSCode實現網頁製作的靜態CMS:Front MatterVSCode網頁
- HTML+CSS實現下拉選單HTMLCSS
- checkbox及css實現點選下拉選單CSS
- 【Android初級】如何實現一個有動畫效果的自定義下拉選單Android動畫
- Vue 資料雙向繫結實現二級下拉懸浮選單Vue
- 製作簡單的個人網頁教程網頁
- .Net Core Razor動態選單實現
- JQuery實現絢麗的橫向下拉選單jQuery
- 如何製作H5頁面?分享簡單實用H5頁面製作教程H5
- 直播系統搭建,簡單實現Android應用的啟動頁Android
- 使用Vue實現下拉選單框批量新增選項Vue
- vue使用iview實現單選,禁選,下拉框的效果VueView
- WPF實現樹形下拉選單框(TreeComboBox)
- jquery實現四級級聯下拉選單jQuery
- HTML+CSS+JQuery實現下拉選單滑鼠懸浮顯示下拉選單,取消隱藏HTMLCSSjQuery
- 基於jquery-treeview的動態選單實現jQueryView
- 【react】實現動態表單中巢狀動態表單React巢狀
- 用視訊軟體AE + bodymovin製作網頁動畫網頁動畫
- 原生JavaScript實現的SPA單頁應用(hash路由)JavaScript路由
- 自己如何製作一個網頁網頁
- 利用js製作簡單的動態日曆JS
- 實現動態表單的一種思路
- 網頁製作時可以拿起就用的網頁製作小技巧總結網頁
- 大學生川菜網頁製作教程 表格佈局網頁模板 學生HTML靜態水煮魚網頁設計作業成品 簡單網頁製作程式碼 學生美食網頁作品免費設計網頁HTML
- 20個dreamweaver中製作網頁的小技巧網頁
- select下拉選單跳轉效果程式碼
- vue 單頁應用(spa)前端路由實現原理Vue前端路由
- 如何透過動態引數實現週報製作
- PHP如何實現服務端渲染,解決Vue單頁應用動態SEO引數硬傷PHP服務端Vue
- Android實現網頁動態背景“五彩蛛網”Android網頁
- 用Dreamweaver 定義模板批次製作網頁網頁
- 超實用的線上表單製作指南!