用smarty用得吐血的一个事……

pandaidea 2009-10-15 10:54:47
array(6) {
[1]=>
array(2) {
["city"]=>
string(29) "Chongqing>>Yichang,Downstream"
["city_id"]=>
string(1) "3"
}
[2]=>
array(2) {
["city"]=>
string(27) "Chongqing>>Wuhan,Downstream"
["city_id"]=>
string(1) "4"
}
[3]=>
array(2) {
["city"]=>
string(30) "Chongqing>>Shanghai,Downstream"
["city_id"]=>
string(1) "5"
}
[4]=>
array(2) {
["city"]=>
string(27) "Yichang>>Chongqing,Upstream"
["city_id"]=>
string(1) "6"
}
[5]=>
array(2) {
["city"]=>
string(25) "Wuhan>>Chongqing,Upstream"
["city_id"]=>
string(1) "7"
}
[6]=>
array(2) {
["city"]=>
string(28) "Shanghai>>Chongqing,Upstream"
["city_id"]=>
string(1) "8"
}
}
6


这个数组,最后的6是echo count($a);的结果,明确是6个。

MVC控制页面代码如下

//$a= cruise::city_list();
//var_dump($a);echo count($a);
//exit;
template::assign('city_list',cruise::city_list());
template::display('cruise-schedule.html');

将测试代码注释掉,我们来看看smarty部分的显示效率。

变量city_list。

smarty部分代码

_{section name=city loop=$city_list}
<input onchange="givesearchvalue(this)" type="radio" name='city_id' value="_{$city_list[city].city_id}">1_{$city_list[city].city}<br>
_{/section}
(打1是为了突出这些数据是通过循环得出的)
页面显示效果出乎意料。
多了第一个空白的,实际上大家算算,还差key6的数据。


<input type="radio" value="" name="city_id" onchange="givesearchvalue(this)"/>
1
<br/>
<input type="radio" value="3" name="city_id" onchange="givesearchvalue(this)"/>
1Chongqing>>Yichang,Downstream
<br/>
<input type="radio" value="4" name="city_id" onchange="givesearchvalue(this)"/>
1Chongqing>>Wuhan,Downstream
<br/>
<input type="radio" value="5" name="city_id" onchange="givesearchvalue(this)"/>
1Chongqing>>Shanghai,Downstream
<br/>
<input type="radio" value="6" name="city_id" onchange="givesearchvalue(this)"/>
1Yichang>>Chongqing,Upstream
<br/>
<input type="radio" value="7" name="city_id" onchange="givesearchvalue(this)"/>
1Wuhan>>Chongqing,Upstream
<br/>
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
foolbirdflyfirst 2009-10-16
  • 打赏
  • 举报
回复
section循环0开始的递增数字索引数组,一般用来对付那些搜索mysql得到的数据集。
pandaidea 2009-10-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhoufoxcn 的回复:]
基本上所有的编程语言如Java/C#/PHP等,集合下标都是从0开始的。如果你有其它语言的开发经验就不会犯这种错误了。
[/Quote]

所有的循环都是以数字索引开始的,我本以为section还支持关联索引的……
foolbirdflyfirst 2009-10-16
  • 打赏
  • 举报
回复
section循环0开始的递增数组
foreach可循环索引和关联数组
周公 2009-10-16
  • 打赏
  • 举报
回复
基本上所有的编程语言如Java/C#/PHP等,集合下标都是从0开始的。如果你有其它语言的开发经验就不会犯这种错误了。
pandaidea 2009-10-15
  • 打赏
  • 举报
回复
原因是section循环的数组必须是0开始的……这点,手册描述不够详细,残念啊……

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧