php - 使用 PHP 中的复选框更新表中的值

标签 php mysql

我是 php 的初学者,我有一个关于复选框的问题。

首先,在形式上我不知道name=medID[]是不是专门作为一个数组来使用的。或者像 medID 这样的普通字符串会起作用吗?以及使用数组到底有什么用。?

当我更新查询中的值时,$quan 和 $medID 值都没有传递到查询中。 在浏览器中它显示“Alloted Successfully”但是数量的数据库值没有改变。当我将 $quan 和 $imp 值替换为一些整数时,它工作正常。

<tbody>
                   <tr>

                    <form method="post" action="ytube.php?array=hospitalstock&hospitalID=<?php echo $opened['hospitalID']; ?>&id=allot" role="form"> 
                    <div class="form-group">            
                        <td class="vcenter"><input type="checkbox" name="medID[]" id="check" value="<?php echo $list['medID']; ?>" /></td>  
                    </div>
                        <td><?php echo $list['item']  ?> </td>
                        <td><?php echo $list['price']  ?> </td>
                        <td><?php echo $list['quantity']  ?> </td>
                        <td><?php echo $list['subtotal']  ?> </td>
                    <div class="form-group">
                        <td><input type="text" name="quantity" id="quantity"  class="form-control" /> </td>
                    </div>




                     </tr>  

                    <?php }} ?>
                    <div class="form-group">
                    <input class="submit" type="submit" value="Allot Medicine" name="submit" class="form-control" />
                    </div>
                    </form>                        


            </tbody>



        </table>  

        <?php 
            $id=$_POST['medID'];    
            $quan=$_POST['quantity'];

            if(isset($_POST['submit'])){
                if(empty($id) || $id==0){
                    echo 'Select medicines to allot ';
                }else{
                    echo $quan;
                    $imp= implode(", ",$id);

                    $q="UPDATE hospitalstock SET quantity= (quantity - '.$quan.') WHERE medID IN('.$imp.')" ;
                    $r=mysqli_query($conn, $q);

                    if(isset($r)){
                        echo 'Alloted Succesfully';
                    }

                }
            }
        ?>

最佳答案

是的,像 madID 这样的普通字符串也能正常工作。

  • name="medID" => $_post['medID']
  • name="medID[]" => $_post['medID'][0] 最后一个 [0] 会得到你是数组的第一个元素

当数组是动态创建的表单时,它可能非常有用。未设置输入数量的表单,例如联系表单,您可以在其中单击加号图标为多个电话号码添加另一个文本输入。因为它不知道某人有多少电话号码,所以更容易将一个变量作为数组检索并在之后迭代该数组。

你不会得到这样的错误:

Notice: Undefined index: medID in ....

在您的代码中,您有 name="medID[]"$_post['medID']。所以你的表单正在发送一个数组,但你检索了一个普通变量。只需从 name="medID[]"

中删除 []

因为 if(empty($id) $id 将始终为空,所以您甚至无法访问您的查询。

关于php - 使用 PHP 中的复选框更新表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31102584/

相关文章:

php - Laravel Eloquent - 一张 table 的多个模型

php - Mysql在数组中搜索字符串

php - 为什么DBF在PHP中会显示为不良记录,而在直接查看时却不会显示为不良记录?

php - 如何通过 PHP 使用 group 来统计 mysql?

Mysql - 从表中删除除所有 post_id1 的 2 行之外的所有内容

mysql - 开始按特定行条件进行查询

PHP/Sql - 尝试根据特定条件获取行的最大 id

php - 如何添加指向 html 格式文本的链接? (随机,使用程序)

javascript - 在选择另一个选择字段时创建动态选择字段

php - mySQL按一定的ID排列。缺少一行数据