我在会话中遇到了一个小问题。我在一个网站上建立了一个小型的购物车式的部分,几乎完成了我想要的工作。一个问题是,当我访问我的篮并在它没有任何项目,它抛出了一个错误:如果购物车中没有物品,则会出现警告
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分离你的逻辑,并尽可能输出你的HTML,而不用PHP。你会发现将两者分开会使你的程序更具可读性,编辑布局变得更容易。 – halfer
感谢您的推荐,我同意,我不知道如何做到这一点(我对PHP非常陌生,并且具有基本知识),如果您手头有链接并提供关于如何完成此操作的一些信息,我将不胜感激 – user1370288
[This](http://fabien.potencier.org/article/34/templating-engine-in-php)是关于模板引擎的一个很好的理论讨论(虽然它有点高级,但还是有一定的帮助)。搜索“Zend_View”,“Twig”或“Smarty”以更多地了解各种方法。 – halfer