【发布时间】:2012-06-28 12:47:55
【问题描述】:
我对会话有一个小问题。我在一个网站上建立了一个小型购物车式的部分,它几乎可以完成我想要它做的事情。一个问题是,当我访问我的 basket 并且其中没有任何物品时,它会引发错误:
Warning: Invalid argument supplied for foreach() in /home/andydownham/site.com/wp-content/themes/theme/basket.php on line 28
我猜它需要像'if items are in cart' > use normal code > else display 'sorry there are no items in your cart' 这样的东西,只是我不知道具体如何实现。
这是我用来将内容存储到会话中的代码
<?php
session_start();
//var_dump($_POST);
//print_r($_SESSION);
$_SESSION['event_orders'][] = $_POST['event_id'];
?>
这是我在购物篮页面上使用的代码:
<?php
session_start();
foreach($_SESSION['event_orders'] AS $event_id){
echo '<div class="grad basket">';
echo '<div class="thumb">';
$EM_Event = em_get_event($event_id);
echo $EM_Event->output('#_EVENTIMAGE{72,72}');
echo '</div>';
echo '<div class="basket-title"><h2>';
echo '<a href="';
$EM_Event = em_get_event($event_id);
echo $EM_Event->output('#_EVENTURL');
echo '">';
$EM_Event = em_get_event($event_id);
echo $EM_Event->output('#_EVENTNAME');
echo '</a>';
echo '</h2>';
echo '<div class="basket-dates"> Dates:';
$EM_Event = em_get_event($event_id);
echo $EM_Event->output('#_EVENTDATES');
echo '</div></div>';
echo '<div class="klear"></div>';
echo '<input type="submit" class="remove" value="remove" />';
echo '</div>';
echo '<br/>';
}
?>
【问题讨论】:
-
我建议您考虑将您的逻辑与您的 HTML 分离,并在没有 PHP 的情况下尽可能多地输出您的 HTML。您会发现,将两者分开将使您的程序更具可读性,并且编辑布局变得更加容易。
-
感谢您的推荐,我同意,如果您手头有一些有关如何操作的信息的链接,我不确定如何执行此操作(我对 PHP 非常陌生,并且具有基本知识)完成了,我将不胜感激
-
This 是关于模板引擎的一个很好的理论讨论(它有点先进,但还是试试吧)。搜索“Zend_View”、“Twig”或“Smarty”以了解有关各种方法的更多信息。
-
非常感谢!非常感谢:)
标签: php session shopping-cart