我在會話中遇到了一個小問題。我在一個網站上建立了一個小型的購物車式的部分,幾乎完成了我想要的工作。一個問題是,當我訪問我的籃並在它沒有任何項目,它拋出了一個錯誤:如果購物車中沒有物品,則會出現警告
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