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

时间:2015-06-28 17:21:24

标签: php mysql

我是php的初学者,我遇到了关于复选框的问题。

首先,我不知道name = medID []是否特别用作数组。或像medID这样的普通字符串会起作用吗?以及如何使用数组确实有用。?

当我更新查询中的值时,$ quan和$ medID值都没有在查询中传递。   在浏览器中显示" Alloted Succesfully"但数量的数据库值没有变化。当我将$ 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';
                    }

                }
            }
        ?>

2 个答案:

答案 0 :(得分:0)

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

  • name="medID" =&gt; $_post['medID']
  • name="medID[]" =&gt; $_post['medID'][0] de last [0]将为您提供数组的第一个元素

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

不要收到如下错误:

  

注意:未定义的索引:medID in ....

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

中删除name="medID[]"即可

由于if(empty($id) $ ID始终为空,因此您甚至无法查询。

答案 1 :(得分:0)

很少有话要说;首先,当您使用action作为post提交值时,我不理解使用method的查询字符串的概念。其次,如果您尝试使用查询字符串中的值;然后我在整个程序中找不到$_GET[]。第三是当您不确定收集或收集时使用$_REQUEST[]的建议。此外,name="medID[]"不会为PHP创建任何数组。 ytube.php是否与您创建此表单的页面相同?