广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 5740 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.054467 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言