2015-02-24 138 views
-1

这是我的第二个代码,但问题是我有3个查询。因此,它只能返回最后的product_id当我点击更新,它总是返回的product_id = 3,但我想更新的product_id = 2只返回查询的最后一个值

<form action="update_qty.php" method="POST"> 
<?php while($getorder = mysqli_fetch_array($order)){ ?> 
    <input type="hidden" value="<?=$getorder['price']?>" name="actual_price"> 
    <input type="hidden" value="<?=$getorder['product_id']?>" name="product"> 
    <input type="text" value="<?=$getorder['qty']?>" name="qty" size="1" style="text-align:center"> 
    <input type="submit" value="update" name="update"> 
<?php } ?> 
</form> 
+0

不要以为你可以这样做。 GET值可以使用URL或表单标签使用method =“GET”传递(在这种情况下,POST可能更好)。如果你不想要一个明确的表单/提交按钮,你最好使用AJAX/jQuery。 – Maximus2012 2015-02-24 17:53:23

回答

0

你可以这样

<a href="update_qty.php?product_id=<?=$getorder['product_id']?>&type=text">update</a> 
+0

它与我的代码相同 – 2015-02-24 17:56:29

+0

不,我添加了'&type = text' – smowtion 2015-02-24 17:57:58

0

添加更多的信息,你的问题是PHP是服务器端,你需要客户端来读取文本框的值。您需要刷新页面才能将文本字段值传递给服务器,以便将其写入锚标记中的url。这是表单提交会做什么,但它会提交的价值已经锚定标记将是毫无意义的

要做到这一点,没有页面刷新使用Javascript。用jQuery很容易做到。您可以添加一个事件,该事件会在输入文本框中输入锚定标记href时输入的内容。

0
<a href="update_qty.php?product_id=<?php echo $getorder['product_id']?>">update</a> 

update_qty.php u可以使用这样

<?php echo $_GET['product_id'];?> 
0

我会做更多的事情是这样的。 每种产品的一种形式。在你的情况下,当你提交表格时,数量值将始终是找到的las。

<?php while($getorder = mysqli_fetch_array($order)){ ?> 
    <form action="update_qty.php" method="POST"> 
     <input type="hidden" value="<?=$getorder['price']?>" name="actual_price"> 
     <input type="hidden" value="<?=$getorder['product_id']?>" name="product"> 
     <input type="text" value="<?=$getorder['qty']?>" name="qty" size="1" style="text-align:center"> 
     <input type="submit" value="update" name="update"> 
    </form> 
<?php } ?> 
0

不能像所有那样获取所有值,因为在每次循环迭代中都会输入名称覆盖。

多个值,你可以尝试像两个方面:

<?php 
while($getorder = mysqli_fetch_array($order)){ 
$newArr[] = $getorder['price']."~".$getorder['product_id']."~". $ getorder['qty']; 
} //while end 
?> 
    <input type="hidden" name="allinputs" value="<?=$newArr?>"> 

外循环输入字段。

在php中用〜爆炸数组值并获取所有值。

其他的解决方案是 你输入字段名称必须改变这样的:在每次迭代

<?php while($getorder = mysqli_fetch_array($order)){ ?> 
    <input type="hidden" value="<?=$getorder['price']?>" name="actual_price_<?=$getorder['product_id']?>"> 
<?php } ?> 

更改字段名。

在当前场景中,您需要三个不同的按钮或使用AJAX请求的最佳解决方案。