【发布时间】:2023-03-04 02:30:01
【问题描述】:
我有一款产品叫定制礼盒,有5、9、12等不同尺寸。
当用户选择礼品盒中的商品并添加到购物车时,我也会使用巧克力的数量来获取这些巧克力名称。
在下面的代码中,我写了如果产品名称包含自定义然后在 for 循环中使用会话获取相关巧克力。
For 循环可以正常工作,但有时却不能。
如何解决?
<?php
if(stristr($this->getProductUrl(),"customized")){
?>
<div>
<?php
echo "<br/>";
$itid = $_item->getId();
echo $itid;
$strrep = str_replace(' ','_',$this->htmlEscape($this->getProductName()));
for($k=1;$k<=sizeof($_SESSION[$strrep."item".$itid]);$k++){
if($_SESSION[$strrep."item".$itid][$k]!=""){
echo " <font size='1px'>".$_SESSION[$strrep."qty".$itid][$k]." x ".$_SESSION[$strrep."item".$itid][$k]."</font><br/>";
}
}
?>
</div>
【问题讨论】:
-
在你的
for循环中if条件有时true,有时false -
听起来你有时会遗漏一些东西 :) 它可能是 SESSION 变量。确保
$_SESSION[$strrep."item".$itid]在你的forloop 之前有一个值。 -
@TolgaEvcimen 我已经检查过了。问题出在会话上。如果产品有 10 个子产品,会话仅显示 3 到 4 个产品,有时它显示正确..
-
那么我想您应该仔细检查将这些产品对象保存到会话中的代码片段。你可能会遗漏一些东西。而且我觉得我需要对会话的使用提出建议,只是将其用于会话目的,例如身份验证,而不是用于业务逻辑操作,而是使用 get 或 post 变量。