2011-08-19 126 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++