廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5726 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
sataco
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[PHP][求助] 三階動態雙向選單

主要是想做的向下面這個網站的動態選單
http://www.ecarlink.c...nventory
(all years, all makes, all models, go的那個)

主要是他前兩個year 與 makes是可以雙向
第三個models在選擇makes後 還能依據第一個年分篩選

我的資料庫如下

car#, yr, mk_nm, model
13345, 2000, toyota, camry
45678, 1999, toyota, corolla
78946, 2005, honda, civic
類似這樣

目前我只能做出偽三階選單 >"<
因為最後一個models沒辦法抓到第一個years的值
只能依據Makes的值來改變
另外 也沒辦法依據makes改變year的內容

我是參照這位大哥的文章修改的
http://bbs.mychat.to/reads.php?tid=744737

但每次修改後 先不說我寫的對不對
網頁在幾次重新整理後 還是無法正常顯示最新的結果
都要關掉網頁重開或等好一段時間才行

連if else if else也都只能抓到第一個if
後面的都不跑了
只好弄成兩個if 才正常點...囧



以下是我的語法 (head前includes java部分就省略)

主頁面


<select name="yr[]" id="yr">
<option value="0">Select Year</option>
<?php
$data = "SELECT yr FROM InventoryList"; $result = mysql_query($data) or die();
while ($row = mysql_fetch_array($result)) {echo '<option value="'.$row["yr"].'">'.$row["yr"].'</option>'; }
?>

</select>

<select name="make[]" id="mk_nm">
<option value="">All Makes</option>
<?php
$data = "SELECT mk_nm FROM InventoryList"; $result = mysql_query($data) or die();
while ($row = mysql_fetch_array($result)) {echo '<option value="'.$row["mk_nm"].'">'.$row["mk_nm"].'</option>'; }
?>

</select>
<script type="text/javascript">
jQuery(document).ready(function(){ $('#mk_nm').cascade('#yr', { ajax: {type: "GET", url: 'action3.php', data: { act: 'first', val: $('#yr').val() } },
template: function(item) { return "<option value='" + item.Value + "'>" + item.Text + "</option>"; },
match: function(selectedValue) { return this.When == selectedValue; } });});
</script>

<select name="model[]" id="model">
<option value="">Select Makes</option>
</select>

<script type="text/javascript">
jQuery(document).ready(function(){ $('#model').cascade('#mk_nm', { ajax: {type: "GET", url: 'action3.php', data: { act: 'second', val: $('#mk_nm').val() } },
template: function(item) { return "<option value='" + item.Value + "'>" + item.Text + "</option>"; },
match: function(selectedValue) { return this.When == selectedValue; } });
});
</script>





-------------------------------------------

action頁面


if (isset($_GET['act'])) { $action = $_GET['act'];}

if (isset($_GET['val'])) { $parentId = $_GET['val']; }

switch ($action) {
case 'first':
$list = '[{\'When\':\'' . $parentId . '\',\'Value\':\'\',\'Text\':\'Select Make\'},';
if ($parentId == 0) { $query = "SELECT mk_nm FROM InventoryList"; }
if ($parentId != 0) { $query = "SELECT mk_nm FROM InventoryList WHERE yr = '".$parentId."' ORDER BY mk_nm ASC"; }
$result = mysql_query($query) or die();
while ($row = mysql_fetch_array($result)) { $list .= '{\'When\':\'' . $parentId . '\',\'Value\':\'' . $row["mk_nm"] . '\',\'Text\':\'' . $row["mk_nm"] . '\'},';}
break;

case 'second':
$list = '[{\'When\':\'' . $parentId . '\',\'Value\':\'\',\'Text\':\'Select Model\'},';
$query = "SELECT model FROM InventoryList WHERE mk_nm = '".$parentId."' ORDER BY model ASC";
$result = mysql_query($query) or die();
while ($row = mysql_fetch_array($result)) { $list .= '{\'When\':\'' . $parentId . '\',\'Value\':\'' . $row["model"] . '\',\'Text\':\'' . $row["model"] . '\'},';}
break;
}

$list .= ']';
echo $list;




煩請請各位高手指點建議
感激不盡>"<




獻花 x0 回到頂端 [樓 主] From:沒有資料 | Posted:2009-06-08 01:23 |
twnhostCom
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x13
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

表情

很複雜

不會...


獻花 x0 回到頂端 [1 樓] From:臺灣 | Posted:2009-06-09 00:33 |
andyz 手機 會員卡
數位造型
個人文章 個人相簿 個人日記 個人地圖
社區建設獎
頭銜:惡靈退散 o(╬ ̄皿 ̄)=○ &nb ..惡靈退散 o(╬ ̄皿 ̄)=○ &nb ..
分類版主
級別: 分類版主 該用戶目前不上站
版區: 塑膠模型, 電腦資訊
推文 x55 鮮花 x168
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

動態選單要用AJAX才行
建議你去買一本PHP版的AJAX
或是上網搜尋
一定會有答案的


回文原則(以下只適用在我的管理區)
1.我不回太白目的問題
2.還有娘家文
3.看不懂得也是
4.我很懶得把你的問題(也就是文字敘述)想成我要看到的畫面(也就是螢幕上出現的畫面)。純文字敘述者,看不懂在說啥就不回。想要解答就先下點功夫,來個圖文並茂的文章吧。
5.想到再打

何謂白目問題
1.看不懂英文的,要求翻譯
2.沒經過爬文就問
3.給個問題(題目)就要求解答。例如:請問XXX怎麼寫。自己的CODE都沒有貼上來就要求別人幫你寫,不如你的作業我幫你作、你的書我幫你讀好了
4.想到再打
獻花 x0 回到頂端 [2 樓] From:臺灣中華電信HINET | Posted:2009-06-11 09:23 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.055713 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言