+ -
当前位置:首页 → 问答吧 → 程序循环后模板赋值为空,求助兄弟们帮我分析下

程序循环后模板赋值为空,求助兄弟们帮我分析下

时间:2011-11-15

来源:互联网

程序里用foreach循环打印后数值为下:
PHP code
Array ( [address_id] => 9 [address_name] => [user_id] => 382 [consignee] => 2323123 
[email] => sales@3eit.com [country] => 1 

[province] => Array ( [region_name] => 上海 ) 

[city] => 321 [district] => 2721 [address] => wqewqewq [zipcode] => 21 [tel] => 13487065213 [mobile] => [sign_building] => [best_time] => ) Array ( [address_id] => 11 
[address_name] => [user_id] => 382 [consignee] => [email] => [country] => 1 [province] => Array ( ) [city] => 0 [district] => 0 [address] => [zipcode] => 
[tel] => [mobile] => 
[sign_building] => [best_time] => ) Array ( [address_id] => 12 
[address_name] => [user_id] => 382 [consignee] => 新天地电脑城 [email] => sales@3qit.com [country] => 1 [province] => Array ( [region_name] => 江西 ) [city] => 183 [district] => 1568 
[address] => 南昌市新天地电脑城 [zipcode] => [tel] => 13487065213 [mobile] => [sign_building] => [best_time] => ) Array ( [country] => 1 [email] => [city] => 0 [province] => Array ( ) ) 


[province] => Array ( [region_name] => 上海 )
[province] => Array ( [region_name] => 江西 ) 

循环出来的这两个都已经打印没问题,但前台用foreach循环却始终不显示数值

我这是SQL出省级地址的,在写入时 province 的数值为数字,每个省对应一个数字,前台查询输出到模板却显示不了
兄弟们帮我分析下,附前台模板调用代码
模板调用文件
PHP code

<!-- {foreach from=$consignee_list item=consignee key=sn} -->
{$consignee.region_name]} {$city.region_name}{$consignee.province.region_name} {$consignee.address}

<!-- {/foreach} -->






PHP循环代码如下:
PHP code

 /* 取得每个收货地址的省市区列表 */
        $province_list = array();
        $city_list = array();
        $district_list = array();
        foreach ($consignee_list as $key => $consignee)
        {
            $consignee['country']  = isset($consignee['country'])  ? intval($consignee['country'])  : 0;
           // $consignee['province'] = isset($consignee['province']) ? intval($consignee['province']) : 0;
            $consignee['city']     = isset($consignee['city'])     ? intval($consignee['city'])     : 0;

            $province_list[$region_id] = get_regions(1, $consignee['country']);
            $city_list[$region_id]     = get_regions(2, $consignee['province']);
            $consignee['province']     = getone_region($consignee['province']);
            print_r($consignee);
            //exit;
            $district_list[$region_id] = get_regions(3, $consignee['city']);
        }

作者: wyf23256   发布时间: 2011-11-15

你的$consignee_list就是你上面给的数组吗?
除了{$consignee.province.region_name} 不显示 其它的有值吗?

作者: heyli   发布时间: 2011-11-15

其它都显示,毕竟foreach循环的是一个地址表
省份字段那个在地址表里是数字,通过类解析对应省份
如地址表省份字段值32,通过类getone_region解析到ID=32的为上海,通过foreach输出得到省份不是数字32,而是‘上海’

这么说明白么?

作者: wyf23256   发布时间: 2011-11-15

明白 你的模板代码没有问题
在于你的php代码的 foreach
  $consignee['province'] = getone_region($consignee['province']);
你上面这一句 其实没有改到 $consignee_list 这个数组的具体内容
应该是 $consignee_list[$key]['province'] = getone_region($consignee['province']);
你在foreach 完 再 print_r($consignee_list); 看下结果 我说的对不对

作者: heyli   发布时间: 2011-11-15