2013-11-27 4 views
0

Я пытаюсь внедрить корзину PHP на моем сайте. В настоящее время у меня есть страница продуктов, правильно читающая из моей базы данных. Когда тележка пуста, «в вашей корзине нет предметов», отображается текст, однако, когда в тележке есть что-то, он отображает заголовки в эту таблицу, но не содержит информации о продукте.Моя корзина покупок недоступна в корзине?

<form name="cartform" method="post" action=""> 
     <input type="hidden" name="productid" /> 
     <input type="hidden" name="command" /> 
     <span id="cont_shop"> 
     <input type="button" value="Continue Shopping" onclick="window.location.href='../Project/products.php'" /> 
     </span> 
     <div id="formerror"><?php echo $message ?></div> 

     <table id="cart_table"> 
     <?php 
      if(count($_SESSION['cart'])) 
      { 
       echo '<tr> 
       <th>Name</th> 
       <th>Price</th> 
       <th>Quantity</th> 
       <th>Amount</th> 
       <th>Options</th> 
       </tr>'; 

       $max = count($_SESSION['cart']); 

       for($i = 0; $i < $max; $i++) 
       { 
        $product_id = $_SESSION['cart'][$i]['productid']; 
        $quantity = $_SESSION['cart'][$i]['quantity']; 
        $product_name = get_product_name($dbc,$product_id); 
        $product_price = get_price($dbc,$product_id); 

        if($quantity == 0) 
        { 
         continue; 
        } 

        echo '<tr> 
        <td>' . $product_name . '</td> 
        <td>&#36; ' . $product_price . '</td> 
        <td><input type="text" name="product' . $product_id . '" value="' . $quantity . '" maxlength="4" size="2" /></td> 
        <td>&#36; ' . $product_price*$quantity . '</td> 
        <td><a href="javascript:del(' . $product_id . ')">Remove Item</a></td> 
        </tr>'; 
       } 

       echo '<tr> 
       <td colspan="2"><strong>Order Total: &#36;' . get_order_total($dbc) . '</strong></td> 
       <td></td> 
       <td colspan="3" id="cart_buttons"> 
       <input type="submit" value="Clear Cart" onclick="clear_cart()"> 
       <input type="submit" value="Update Cart" onclick="update_cart()"> 
       <input type="submit" value="Complete Order" onclick="complete_order()"> 
       </td> 
       </tr>'; 
      } 

      else 
      { 
       echo '<tr><td>There are no items in your shopping cart.</td></tr>'; 
      } 
     ?> 
     </table> 
     </form> 

При просмотре исходного кода страницы, все, что я вижу, это HTML воздавать здесь:

<table id="cart_table"> 
    <tr> 
      <th>Name</th> 
      <th>Price</th> 
      <th>Quantity</th> 
      <th>Amount</th> 
      <th>Options</th> 
      </tr> 
+1

ли вы сделать 'вид source' в браузер, чтобы убедиться, что у вас есть html? Возможно, у него есть синтаксическая ошибка, в результате чего информация о продукте игнорируется браузером. Выполните любую отладку кода, например. 'var_dump ($ _ SESSION ['cart'])' посмотреть, что на самом деле там? Возможно, ваше поле количества неправильно настроено, поэтому вы автоматически пропускаете ВСЕ записи в корзине. –

+0

@Marc B Страница отображается как обычно, используя мой HTML. Единственное, что не загружается, - это содержимое под заголовками таблицы. Будет ли отображаться var_dump при рендеринге страницы? –

+0

Я имею в виду html для содержимого таблицы. он появляется в источнике страницы? если нет, то ваш код не выводит, и вам нужно выяснить, почему. –

ответ

0
<?php 
    if(count($_SESSION['cart'])) 
      { 
    ?> 
     <form name="cartform" method="post" action=""> 
     <input type="hidden" name="productid" /> 
     <input type="hidden" name="command" /> 
     <span id="cont_shop"> 
      <input type="button" value="Continue Shopping" onclick="window.location.href='../Project/products.php'" /> 
     </span> 
     <div id="formerror"><?php echo $message ?></div> 

     <table id="cart_table"> 
     <?php 

       echo '<tr> 
       <th>Name</th> 
       <th>Price</th> 
       <th>Quantity</th> 
       <th>Amount</th> 
       <th>Options</th> 
       </tr>'; 

       $max = count($_SESSION['cart']); 

       for($i = 0; $i < $max; $i++) 
       { 
        $product_id = $_SESSION['cart'][$i]['productid']; 
        $quantity = $_SESSION['cart'][$i]['quantity']; 
        $product_name = get_product_name($dbc,$product_id); 
        $product_price = get_price($dbc,$product_id); 

        if($quantity == 0) 
        { 
         continue; 
        } 

        echo '<tr> 
        <td>' . $product_name . '</td> 
        <td>&#36; ' . $product_price . '</td> 
        <td><input type="text" name="product' . $product_id . '" value="' . $quantity . '" maxlength="4" size="2" /></td> 
        <td>&#36; ' . $product_price*$quantity . '</td> 
        <td><a href="javascript:del(' . $product_id . ')">Remove Item</a></td> 
        </tr>'; 
       } 

       echo '<tr> 
       <td colspan="2"><strong>Order Total: &#36;' . get_order_total($dbc) . '</strong></td> 
       <td></td> 
       <td colspan="3" id="cart_buttons"> 
       <input type="submit" value="Clear Cart" onclick="clear_cart()"> 
       <input type="submit" value="Update Cart" onclick="update_cart()"> 
       <input type="submit" value="Complete Order" onclick="complete_order()"> 
       </td> 
       </tr>'; 
      ?> 
     </table> 
     </form> 
     <?php 
     } 

      else 
      { 
       echo '<tr><td>There are no items in your shopping cart.</td></tr>'; 
      } 
     ?> 
+0

Этот код делает то же, что и раньше. –

+0

@ user3042765, не могли бы вы объяснить, что вы делаете? – Math

Смежные вопросы