使用发布按钮更新表行值

时间:2019-04-01 13:25:59

标签: php mysql

我的mysql数据库中有一些数据,这些数据正在使用PHP如下表所示

enter image description here

$requirement_qry="SELECT t1.*, t2.id as unit_id, t2.name as unit_name FROM `tbl_requirements` 
t1 INNER JOIN tbl_units AS t2 on unit_type = t2.id AND project_id='".$_GET['project_id']."' AND user_id='".$userid."'";
$requirement_result=mysqli_query($mysqli,$requirement_qry);

                <form action="" name="addeditcategory" method="post" class="form form-horizontal" enctype="multipart/form-data">
            <input  type="hidden" name="project_id" value="<?php echo $_GET['project_id'];?>" />

          <div class="section">
            <div class="section-body">
              <div class="form-group">
                <label class="col-md-3 control-label" >Project Name :-</label>
                <div class="col-md-6">
                  <input type="text" name="name" id="name" value="<?php if(isset($_GET['project_id'])){echo $row['name'];}?> " class="form-control" disabled>
                </div>
              </div>

              <div class="form-group">
                <label class="col-md-3 control-label" >Location :-</label>
                <div class="col-md-6">
                  <input type="text" name="location" id="location" value="<?php if(isset($_GET['project_id'])){echo $row['location'];}?> " class="form-control" disabled>
                </div>
              </div>


              <div class="form-group">
                <label class="col-md-3 control-label">Project Status :-</label>

                <div class="col-md-6">

                          <select name="status" id="status" class="select2" disabled>
                            <?php if (!isset($_GET['project_id'])) { ?>
                            <option value="1">--Project Status--</option>
                            <?php } ?>
                            <option value="1" <?php echo $row['status'] == '1' ? 'selected' : ''; ?> >Open</option>                            
                            <option value="2" <?php echo $row['status'] == '2' ? 'selected' : ''; ?> >Closed</option>                            
                        </select>

                </div>
              </div>



               <div class="form-group">
                <div class="col-md-3">
                  <label class="control-label">Project Details :-</label>
                </div>
                <div class="col-md-6">
                  <textarea  name="details" id="details" rows="4" class="form-control" disabled><?php echo stripslashes($row['details']);?></textarea>

                </div>
              </div>


                <div class="form-group">
                <div class="col-md-3">
                  <label class="control-label">Project Requirements :-</label>
                </div>
                <div class="col-md-6">
                  <table id="t01">
                    <thead>
                      <tr>
                        <th>#</th>
                        <th>Requirements</th> 
                        <th>Required</th>
                        <th>Sent</th>
                        <th>Action</th>
                      </tr>
                    </thead>
                    <tbody>
                            <?php
                            $no     = 1;
                            while ($row1 = mysqli_fetch_array($requirement_result))
                            {
                                $id = $row1['id'];
                                $unit_name = $row1['unit_name'];
                                echo '<input  type="hidden" name="reqId" id= "reqId" value="'.$id.'" />';
                                echo '<tr>
                                        <td>'.$no.'</td>
                                        <td>'.$row1['name'].'</td>
                                        <td>'.$row1['unit_required']." ".$unit_name.'</td>
                                        <td><input type="number" id = "received" name = "received" value ="'.$row1['unit_received'].'"/></td>
                                        <td><button type="submit" name="submit" class="btn btn-primary" style="padding:5px 10px;">Submit</button></td>
                                    </tr>';
                                $no++;
                            }?>
                    </tbody>
                    </table>

                </div>
            </div>
          </div>
        </form>

以上代码正确显示了我的数据。我有一个来自行的字段值需要使用提交按钮进行更新。如果只有一行,则工作正常...如果有多行,则除最后一行外,不更新其数据。 我的提交代码如下所示

if(isset($_POST['submit']) and isset($_POST['project_id']))
{       

        $projectId = $_GET['project_id'];

        $data = array(
                     'unit_received'  =>  $_POST['received']
                    );      
                 $unit_edit=Update('tbl_requirements', $data, " WHERE id = '".$_POST['reqId']."'");
                 print_r($unit_edit);
                 echo $unit_edit;


        if ($unit_edit > 0)
        { 

                    $_SESSION['msg']="11"; 
                    header( "Location:view_open_project.php?project_id=".$_POST['project_id']);
                    exit;

        }
}

我在PHP中并不陌生,请让我知道是否有人可以帮助我解决该错误。 非常感谢:)

2 个答案:

答案 0 :(得分:0)

如@Saji所述,您正在通过循环复制名称。您应该使用

echo '<input  type="hidden" name="reqId[]" id= "reqId" value="'.$id.'" />';

请注意附加了[]括号,以便您创建名称数组。 要更新,您需要像

这样的循环
for($i=0;$i<count($_POST['reqId']);$i++){
    $unit_edit=Update('tbl_requirements', $data, " WHERE id = '".$_POST['reqId'][$i]."'");
}

答案 1 :(得分:0)

您可以做的只是创建一个隐藏的表单,在其中保留原始元素。单击保存按钮时,您只需要找到实际值并将其设置为隐藏表单内的元素,然后触发隐藏表单内的提交按钮即可。

请注意我对您的代码所做的更改。

1。从内部循环中删除了隐藏元素def wallis(x): counter = 0 my_pi = 2.0 pi j= 1.0 while x > abs(pi-my_pi): top = (4*(j**2)) btm = (4*(j**2)-1) my_pi *= top/btm j += 1 my_pi = 2 * my_pi counter += 1 print(my_pi) return my_pi, counter

2。为循环内的按钮指定一个类名,并将按钮类型从reqId更改为submit。添加了数据属性button

3。循环内的输入data-id="'.$id.'"通过串联received给出了唯一的ID和名称。

4。创建带有隐藏输入的隐藏表单。它具有您的实际输入名称。

5。创建了一个jquery函数来将click事件附加到循环内的按钮上。

6。将隐藏元素$id移动到内部隐藏形式中。

现在请参阅下面的代码以获取更多详细信息。希望对您有帮助。

project_id