2013-07-14 113 views
1

我在下面有下面的代碼,但問題是它無法正常工作。代碼旨在更新用戶輸入的數量。Foreach條件問題

如果我回顯$type $size $quantity我可以看到值已發送。

foreach ($_SESSION["cart_array"] as $array_key=>$each_item)我認爲問題在於此,但我似乎無法看到它。

有人可以請看看,看看他們是否可以找到問題,請。由於

ISSUES

,如果我在表單中輸入了一些更新。它不會更新。

PHP

<?php 
    session_start(); 
    ?> 
    <?php 
if (isset($_POST['item_to_adjust']) && isset($_POST['size']) && isset($_POST['type'])) { 
    $item_to_adjust = $_POST['item_to_adjust']; 
    $type = $_POST['type']; 
    $size = $_POST['size']; 
    $quantity = $_POST['quantity']; 
    $quantity = preg_replace('#[^0-9]#i', '', $quantity); // filter everything but numbers 
    if ($quantity >= 100) { $quantity = 99; } 
    if ($quantity < 1) { $quantity = 1; } 
    if ($quantity == "") { $quantity = 1; } 
    $i = 0; 
    foreach ($_SESSION["cart_array"] as $array_key=>$each_item) { 
    $i++; 
       if ($each_item['item_id'] == $item_to_adjust && $each_item['size'] == $size && $each_item['type'] == $type) { 
         $_SESSION["cart_array"][$array_key]['quantity']+=$quantity; 
        } 
       } 
} 
?> 

HTML

<form action="cart.php" method="post"> 
     <input name="quantity" type="text" value="' . $each_item['quantity'] . '" size="1" maxlength="2" /> 
     <input name="adjustBtn' . $item_id . '" type="submit" value="Update" /> 
     <input name="size" type="hidden" value="' . $each_item['length'] . '" /> 
     <input name="type" type="hidden" value="' . $each_item['Category'] . '" /> 
     <input name="item_to_adjust" type="hidden" value="' . $item_id . '" /> 
     </form> 

回答

4

我不知道,但由於這一點,你面對的可能是這個問題: 嘗試更換此行

if ($each_item['item_id'] == $item_to_adjust && $each_item['size'] == $size && $each_item['type'] == $type) 

這一行:

if ($each_item['item_id'] == $item_to_adjust && $each_item['length'] == $size && $each_item['Category'] == $type) 

在你的會話變量沒有名爲「大小」或「輸入」鍵,以便基本上當u檢查條件$ each_item [「大小」] == $大小和$ each_item ['type'] == $ type在If條件中賦予false(或者在您的情況下爲Notice:Underfined Index:Type),因此不會執行導致未更新$中的「數量」值的If body _SESSION

按照烏爾評論做到這一點:嘗試更換線

$_SESSION["cart_array"][$array_key]['quantity']+=$quantity; 

$_SESSION["cart_array"][$array_key]['quantity'] = $quantity; 
+0

非常感謝...希望我能給你100票。我解決了這個問題,我需要從** $ _SESSION [「cart_array」] [$ array_key] ['quantity'] + = $ quantity; ** – Amy