隐藏值只传递循环的最后一个值

时间:2015-07-29 11:16:06

标签: php

我正在尝试执行更新查询..首先我使用href将id传递给下一页。它没有工作..现在我使用隐藏字段将id传递给下一页..这里的问题是它返回了while循环已经获取的最后一个id ..Plz帮助我,我是一个新手,我一整天都坚持这一点。谢谢你提前..

<html>
<body bgcolor="skyblue">
<form method= "post" enctype="multipart/form-data" action="upd.php">
    <table align="center" width="795" border="2" bgcolor="#CCC">
        <?php
            $i=0;
            $sel="select * from video";
            $sel_query=mysqli_query($con, $sel);
            while($row=mysqli_fetch_array($sel_query)){
                $i++;
                $var_id=$row['v_id'];
                $var=$row['video'];
                ?>
                <tr align="center">  
                    <td  align="right">
                        <br>
                        <h2>Upadte Video <?php echo $i; ?> Link: </h2>
                     <input type="hidden" name="hidden_id" value="<?php echo 
                 $var_id; ?>" />
                        <button type="submit" name="btn">
                            Update
                        </button>
                        <td align="left"><br><textarea name="vids" rows="4" cols="50"><?php echo $var; ?>"</textarea></td>
                    </td>
                </tr>
                <?php
        }
        ?> 
    </table>
</form>

udp.php

  <?php
  include ("includes/db.php");
if(isset($_POST['btn'])){
 $id=$_POST['hidden_id'];
 echo $id;}

1 个答案:

答案 0 :(得分:0)

您的循环正在运行并生成以下两个HTML字段:

<input type="hidden" name="hidden_id" value="<?php echo $var_id; ?>" />
<textarea name="vids" rows="4" cols="50"><?php echo $var; ?>"</textarea>

但是,由于他们的名字是普通字符串,所以只有最后一个字符串覆盖。

你需要在循环中引用id。

<input type="hidden" name="hidden_id[<?php echo $var_id;?>]" value="<?php echo $var_id;?>" />
<textarea name="vids<?php echo $var_id;?>" rows="4" cols="50"><?php echo $var; ?>"</textarea>

在$ _POST中,

发布变量的循环数组:

if (! empty($_POST)) {
  foreach ($_POST['hidden_id'] as $id => $val) {
    $textareaVal = $_POST['vids'][$id];
    // Apply your logic on database operations, etc...
  }
}