首页 > 解决方案 > 用复选框mysql php替换文本框

问题描述

我正在使用 php 和 mysql 以管理员身份更新数据库内的用户数据,我有一个文本框允许管理员输入已批准或未批准,现在我想尝试将已批准或未批准的文本框更改为管理员可以单击复选框批准的复选框,数据将根据被选中的用户更新,因为我不确定如何去做。谢谢

<?php
 require('connection.php');
    if (isset($_POST['submit'])) {

        $prescription = $_FILES['prescription']['name'];
        $image_tmp = $_FILES['prescription']['tmp_name'];
        move_uploaded_file($image_tmp,"medical-prescription/$prescription");
        $sql = $conn->prepare("UPDATE users SET approved=?,prescription=?  WHERE id=?");
        $approved=$_POST['approved'];

        $sql->bind_param("ssi",$approved, $prescription,$_GET["id"]);

        if($sql->execute()) {
            $success_message = "Edited Successfully";
        } else {
            $error_message = "Problem in Editing Record";
        }

    }
    $sql = $conn->prepare("SELECT * FROM users WHERE id=?");
    $sql->bind_param("i",$_GET["id"]);
    $sql->execute();
    $result = $sql->get_result();
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
    }
    $conn->close();
?>

<?php if(!empty($success_message)) { ?>
<div class="success message"><?php echo $success_message; ?></div>
<?php } if(!empty($error_message)) { ?>
<div class="error message"><?php echo $error_message; ?></div>
<?php } ?>
<form  method="post" action="" enctype="multipart/form-data">
            <label>approved</label>
            <input type="text" name="approved" class="txtField" value="<?php echo $row["approved"]?>">
            <label>Medical prescription</label>
             <input type="file" name="prescription" id="prescription" required/><br>
            <input type="submit"  name="submit" value="Submit" class="demo-form-submit">
</form>

标签: phpmysql

解决方案


您可以这样做:更改 HTML:

<input type="checkbox" name="approved" class="txtField" value="<?php echo $row["approved"]?>"> Approved?

php:

替换这个:

...    
$approved=$_POST['approved'];
...

和:

...
$approved=(isset($_POST['approved'])) ? $_POST['approved']: "Not approved"; // Or any other text value what you use
...

这是格式化的代码:

<?php
 require('connection.php');
    if (isset($_POST['submit'])) {

        $prescription = $_FILES['prescription']['name'];
        $image_tmp = $_FILES['prescription']['tmp_name'];
        move_uploaded_file($image_tmp,"medical-prescription/$prescription");
        $sql = $conn->prepare("UPDATE users SET approved=?,prescription=?  WHERE id=?");
        //HERE WE CHANGE
        $approved=(isset($_POST['approved'])) ? $_POST['approved']: "Not approved";

        $sql->bind_param("ssi",$approved, $prescription,$_GET["id"]);

        if($sql->execute()) {
            $success_message = "Edited Successfully";
        } else {
            $error_message = "Problem in Editing Record";
        }

    }
    $sql = $conn->prepare("SELECT * FROM users WHERE id=?");
    $sql->bind_param("i",$_GET["id"]);
    $sql->execute();
    $result = $sql->get_result();
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
    }
    $conn->close();
?>

<?php if(!empty($success_message)) { ?>
<div class="success message"><?php echo $success_message; ?></div>
<?php } if(!empty($error_message)) { ?>
<div class="error message"><?php echo $error_message; ?></div>
<?php } ?>
<form  method="post" action="" enctype="multipart/form-data">
            <label>approved</label>
            <input type="checkbox" name="approved" class="txtField" value="<?php echo $row["approved"]?>"> Approve?
            <label>Medical prescription</label>
             <input type="file" name="prescription" id="prescription" required/><br>
            <input type="submit"  name="submit" value="Submit" class="demo-form-submit">
</form>

这是测试:

$('form').on('submit', function(e){
  e.preventDefault();
  var data = $(this).serialize();
  alert("Submitted data: {" + data + '}');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input type="checkbox" name="approved" class="txtField" value="Yes"> Approved?
  <button type="submit" name="submit" value="submit">Submit</button>
</form>


推荐阅读