2011-08-19 130 views
0

我在這個腳本中有一個嘮叨的小錯誤。我正在瀏覽我的購物車物品並將其傳遞到隱藏的輸入中。 cart_id($ obj-> id)正在工作正常值=「」,但我的迭代循環,給每個值一個唯一的名稱=「」(cart_id_1,cart_id_2等)不迭代。php迭代循環隱藏輸入不迭代

<?php   

      $pass_cart_q = "SELECT c.id FROM carts AS c WHERE c.user_session_id='$sid'"; 
      $result = $mysqli->query($pass_cart_q); 

        $i = 1; 
       while ($obj = $result->fetch_object()) { 

        echo "<input type=\"hidden\" name=\"cart_id_".$i."\" value=\" .$obj->id. \"><br>"; 
        $i = $i++; 
       } 
       mysqli_close();?> 

每個名字字段通過爲cart_id_1

+0

我剛剛發現線程,指出您可以使用方括號 - 名稱=「名稱[]」將隱藏字段投射到數組中... I假設我會覆蓋這些值,但我會看看這是否有效。 – shotdsherrif

回答

2
$i=$i++; 

這就是問題只是做:

$i++ 
2

來請只是$i++取代$i = $i++;

$i = 1; 
$i = $i++; 

echo $i, "\n"; // 1 

$i = 1; 
$i = ++$i; 

echo $i, "\n"; // 2 

$i = 1; 
$i++; 

echo $i, "\n"; // 2 

$i = 1; 
++$i; 

echo $i, "\n"; // 2 
+0

增量運算符VAR ++返回VAR的值,然後將VAR值增加1。您可以簡單地使用VAR ++或者VAR = ++ VAR來獲得已經增加的值。 – feeela

+0

是的!有趣的是'$ i = $ i ++'在向左''i'賦予正確'$ i'的值後,增量器不會在我們的左'$ i'上運行。當時有相同的變量名顯然有兩個不同的引用。 –

0

什麼$i = $i++會導致它的字面這樣的:「讓$i等於$i,然後加一就」,但仍然$i將保持不變。要解決此問題,只需將$i = $i++;替換爲$i++即可。

Manual Entry

+0

爲什麼'$ i'仍然保持不變? –

0

要指定遞增值$i變量。因此它不能迭代。相反,你應該刪除該賦值變量$i,它應該只是$i++