通过php表单中的下拉列表更新字段

时间:2017-03-15 10:51:51

标签: php list dropdown

我在PHP编码 - 我的SQL。我有一个名为tbl_pers的表,其中包含员工的个人详细信息。我有另一个表tbl_group,它有一个分配给每种类型组的编号(每个GpTitle都有一个GpCode)。因此,在tbl_pers表中,保存了与tbl_group中定义的组对应的数字。当我尝试使用php编写的表单更新tbl_pers时,它会更新,但是如果我更新表单而不进行任何更改,它会在tbl_pers表中保存一个空值。我希望它保存最初定义的值。 请帮忙

代码如下,

<!DOCTYPE>
<?php
include("includes/db.php");
if(isset($_GET['urlvar_edit_pers'])){

    $get_id=$_GET['urlvar_edit_pers'];
    $get_pers="select * from tbl_pers where pNo='$get_id'";
    $run_query=mysqli_query($con, $get_pers);
    $i=0;

    $row_pers=mysqli_fetch_array($run_query);

        $pNo=$row_pers['pNo'];
        $GpCode=$row_pers['GpCode'];
            $get_group="select * from tbl_group where GpCode='$GpCode'";
            $run_group=mysqli_query($con, $get_group);
            $row_group=mysqli_fetch_array($run_group);
            $GpTitle=$row_GpCode['GpTitle'];

        $i++;       
}
?>

<html>
<div id="page-wrapper">
    <h3>Update Pers Record</h3>

    <div class="tab-content">
    <div class="tab-pane active" id="horizontal-form">
    <form action="" class="form-horizontal"  method="post" enctype="multipart/form-data">

    <div class="form-group">
        <label for="txt_pNo" class="col-sm-2 control-label">Personal Number</label>
        <div class="col-sm-2"><input type="text" name="txt_pNo" class="form-control1" id="txt_pNo" value="<?php echo $pNo;?>" placeholder="Personal Number"></div>
        <div class="col-sm-8"><p class="help-block">Enter without any spaces.</p></div>
    </div>


    <!--Dropdown Dynamic List-->
    <div class="form-group">
        <label for="sel_GpCode" class="col-sm-2 control-label">Group</label>
        <div class="col-sm-2">
        <select name="sel_GpCode" id="sel_GpCode" value="<?php echo $GpCode;?> class="form-control1">
            <option><?php echo $GpTitle;?></option>
            <?php
                $get_GpCode="select * from tbl_group";
                $run_GpCode=mysqli_query($con, $get_GpCode);
                while($row_GpCode=mysqli_fetch_array($run_GpCode)){
                    $GpCode=$row_GpCode['GpCode'];
                    $GpTitle=$row_GpCode['GpTitle'];
                    echo"<option value='$GpCode'>$GpTitle</option>";
                }
            ?>
            </select>

        </div>
    </div>

<div class="bs-example" data-example-id="form-validation-states-with-icons">
<form>

        <div class="col-sm-8 col-sm-offset-2">
            <button class="btn-success btn" name="btn_update">Submit</button>
        </div>
</form>
</div>

</form>

    </div>
    </div>
</div>
</html>

<?php
if(isset($_POST['btn_update'])){

    //getting the text data from the fields
    $update_id = $pNo;
    $GpCode=$_POST['sel_GpCode'];

$update_pers = "update tbl_pers set GpCode='$GpCode' where pNo='$update_id'";
$run_query = mysqli_query($con, $update_pers);

    if($run_query){
        echo"<script>alert('Person has been updated.')</script>";
        echo"<script>window.open('view_pers.php','_self')</script>";
    }
    else{
        echo"<script>alert('Could not add.')</script>";
    }
}
?>

1 个答案:

答案 0 :(得分:0)

您必须使用这两个步骤。

  1. 在while循环中重命名$ GpCode。让我们说$ GpCodeloop。
  2. 在下拉选项中使用选中。
  3. 对更新查询应用检查。

    <option value='$GpCodeloop' <?php if($GpCode==$GpCodeloop){echo "selected='selected'";} ?>selected="selected">$GpTitle</option>

    如果(!空($的GpCode)){     $ update_pers =&#34;更新tbl_pers设置GpCode =&#39; $ GpCode&#39;其中pNo =&#39; $ update_id&#39;&#34 ;; $ run_query = mysqli_query($ con,$ update_pers); }