有关 ecshop 属性 {$goods.goods_attr|nl2br} 标签的赋值问题
ecshop通过good.php向flow.php页面赋值例如向商品数量标签{$goods.goods_number}赋值是用<inputname="number"typ...
ecshop 通过 good.php 向 flow.php 页面 赋值
例如 向 商品数量标签 {$goods.goods_number} 赋值 是用 <input name="number" type="text" id="number" value="1" size="4" onblur="changePrice()" style="border:1px solid #ccc; "/> 代码
现在想向 属性标签 {$goods.goods_attr|nl2br} 赋值
用<input name="attr" type="text" id="attr" value="1" size="4" onblur="changePrice()" style="border:1px solid #ccc; "/>
<input name="attr|nl2br" type="text" id="attr|nl2br" value="2" size="4" onblur="changePrice()" style="border:1px solid #ccc; "/>
都不行,请问改如何写代码 ,谢谢 ! 属性标签 竖线 nl2br 是什么意思 为什么 数量标签后面没有? 展开
例如 向 商品数量标签 {$goods.goods_number} 赋值 是用 <input name="number" type="text" id="number" value="1" size="4" onblur="changePrice()" style="border:1px solid #ccc; "/> 代码
现在想向 属性标签 {$goods.goods_attr|nl2br} 赋值
用<input name="attr" type="text" id="attr" value="1" size="4" onblur="changePrice()" style="border:1px solid #ccc; "/>
<input name="attr|nl2br" type="text" id="attr|nl2br" value="2" size="4" onblur="changePrice()" style="border:1px solid #ccc; "/>
都不行,请问改如何写代码 ,谢谢 ! 属性标签 竖线 nl2br 是什么意思 为什么 数量标签后面没有? 展开
展开全部
1、nl2br() 函数在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />)。
2、楼主你如果要向{$goods.goods_attr|nl2br}赋新值,这个值是保存在数据库中的,用户在商品页(goods.php)选择了商品属性(goods.attr)之后,点击"购买"就会进入购物车页面(flow.php),同时,将用户选择的商品属性(goods.attr)保存进了数据库,当进入购物车页面的时候,楼主可以看flow.dwt的代码(<!-- {foreach from=$goods_list item=goods} -->),那么{$goods.goods_attr}这个东西的值来自于flow.php中的$goods_list,查看flow.php,会发现,$goods_list的值来自cart_goods()这个方法,cart_goods()这个方法在includes/lib_order.php内,那里面有一段sql
($sql = "SELECT 。。。, " .
"。。。, goods_attr(重点),。。。, " .
"。。。 " .
"FROM " . $GLOBALS['ecs']->table('cart') .
" WHERE session_id = '" . SESS_ID . "' " .
"AND rec_type = '$type'";)
,这个sql里面的goods_attr就是楼主你想要的值,它来自数据表cart,而用户对于商品属性的选择决定了cart这个表的goods_attr保存什么样的值。
另外一个影响{$goods.goods_attr}值的方法是includes/lib_order.php内的get_goods_attr_info(),不过这个方法不能决定商品的属性,而是决定商品属性的显示方式,它里面有一段代码:$fmt = "%s:%s[%s] \n";,这个在购物车显示出来的样子就是(例如):颜色:#ff0,我把它改了:$fmt = "<td>%s:</td><td>%s</td><td>[%s]</td> \n";,楼主也可以按自己的喜好来改。
希望对楼主有帮助。
2、楼主你如果要向{$goods.goods_attr|nl2br}赋新值,这个值是保存在数据库中的,用户在商品页(goods.php)选择了商品属性(goods.attr)之后,点击"购买"就会进入购物车页面(flow.php),同时,将用户选择的商品属性(goods.attr)保存进了数据库,当进入购物车页面的时候,楼主可以看flow.dwt的代码(<!-- {foreach from=$goods_list item=goods} -->),那么{$goods.goods_attr}这个东西的值来自于flow.php中的$goods_list,查看flow.php,会发现,$goods_list的值来自cart_goods()这个方法,cart_goods()这个方法在includes/lib_order.php内,那里面有一段sql
($sql = "SELECT 。。。, " .
"。。。, goods_attr(重点),。。。, " .
"。。。 " .
"FROM " . $GLOBALS['ecs']->table('cart') .
" WHERE session_id = '" . SESS_ID . "' " .
"AND rec_type = '$type'";)
,这个sql里面的goods_attr就是楼主你想要的值,它来自数据表cart,而用户对于商品属性的选择决定了cart这个表的goods_attr保存什么样的值。
另外一个影响{$goods.goods_attr}值的方法是includes/lib_order.php内的get_goods_attr_info(),不过这个方法不能决定商品的属性,而是决定商品属性的显示方式,它里面有一段代码:$fmt = "%s:%s[%s] \n";,这个在购物车显示出来的样子就是(例如):颜色:#ff0,我把它改了:$fmt = "<td>%s:</td><td>%s</td><td>[%s]</td> \n";,楼主也可以按自己的喜好来改。
希望对楼主有帮助。
2012-03-23
展开全部
不是用nl2br 是nl2br是ecshop的smarty的一个修饰,他的主要作用是把前面变量的回车换行替换成<br /.>字符,所以不能这样用,直接
<input name="attr" type="text" id="attr" size="4" onblur="changePrice()" style="border:1px solid #ccc; "/>
要想实你这个思路,flow.php中更新购物车的代码也需要改
<input name="attr" type="text" id="attr" size="4" onblur="changePrice()" style="border:1px solid #ccc; "/>
要想实你这个思路,flow.php中更新购物车的代码也需要改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在smarty模板里。你不能在这里修改他的值.他只是一个显示变量。你不能在模板中修改他的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询