【问题标题】:Updating a field through a dropdown in a php form通过 php 表单中的下拉列表更新字段
【发布时间】:2017-03-15 10:51:50
【问题描述】:

我正在使用 PHP - My 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>";
    }
}
?>

【问题讨论】:

  • 欢迎来到 SO。如果您想在问题中添加相关信息,请不要发表评论。相反,您应该编辑您的问题,以便所有详细信息都集中在一个地方。请编辑您的问题并删除您的评论。

标签: php list dropdown


【解决方案1】:

您必须使用这两个步骤。

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

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

    if(!empty($GpCode)){ $update_pers = "更新 tbl_pers 设置 GpCode='$GpCode' 其中 pNo='$update_id'"; $run_query = mysqli_query($con, $update_pers); }

【讨论】:

  • 抱歉,Mahmood,代码不起作用。我是 php 新手,所以我会请求您是否可以给我详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多