如何添加POST方法

How to add POST method

编辑:

代码:

<form action="" method="post">
                  <input type = "submit" name="sql_update" value="SQL Update">
                  <?php $admin_checkbox = '<input type="checkbox" name="admin_status">';?>
                      </form>

$getusers = "SELECT id, username, firstname, lastname, admin FROM registered_users";
$result = mysqli_query($db, $getusers);

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {
        echo "<br>". $row["id"]. " &nbsp; - &nbsp;  " . $row["username"]. "  &nbsp; - &nbsp;  " . $row["firstname"]. " &nbsp; - &nbsp;  " .$row["lastname"]. "  &nbsp; - &nbsp;  " .$row["admin"]. "  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;  " .$admin_checkbox. "<br>";
    }
}

if (isset($_POST['sql_update'])) {
  if (empty($_POST["admin_status"])){
    echo ("Ni obkljukano");
  }

如何连接 $admin_checkbox 才能使此代码正常工作。

if (empty($_POST["admin_status"])){
    echo ("Ni obkljukano");
  }

更新:

一切正常!

现在我也想知道如何做反向效果。如果用户已经是管理员。我必须在 elseif 语句中输入什么。问了这么多问题我真的很抱歉:/

if (isset($_POST['sql_update'])) {
  if (empty($_POST["admin_status"])){
    echo ("Ni izbranih elementov.");
  } 
  elseif(){

    $sql_admin_off = mysqli_query($db, "UPDATE registered_users SET admin = 0 WHERE id IN (".implode(',', $_POST['admin_status']).") ");
    $sql_admin_off;
    echo("test");

  }
  else {

    $sql_admin_on = mysqli_query($db, "UPDATE registered_users SET admin = 1 WHERE id IN (".implode(',', $_POST['admin_status']).") ");
    $sql_admin_on;
    echo("SQL uspešno zapisan!");

  }


    }

更新#2

if (isset($_POST['sql_update'])) {
  if (empty($_POST["admin_status"])){
    echo ("Ni izbranih elementov.");
  } else {

    $sql_admin_on = mysqli_query($db, "UPDATE registered_users SET admin = 1 WHERE id IN (".implode(',', $_POST['admin_status']).") ");
    $sql_admin_on;
    echo("SQL uspešno zapisan!");


    $sql_admin_off = mysqli_query($db, "UPDATE registered_users SET admin = 0 WHERE id NOT IN (".implode(',', $_POST['admin_status']).") ");
    $sql_admin_off;
    echo("test");
  }

  }

假设您已成功列出所有具有管理员复选框的用户:

HTML表格

当您为每个用户列出带有复选框的所有用户时,将复选框值设置为 userId。还使用 字段名称数组 将所有复选框 name="adminId[]" 分组。稍后 $_POST['adminId'] 将包含 ID's 的数组,其中复选框被 选中

然后,你可以简单地使用SQL in运算符来更新 'admin_rights=true',如果ID 列在 $_POST['adminId'] 中。 Implode() 将用字符串 (,).

连接数组元素
<form action="..." method="post">
    <label>
       User ID1: 
       <!-- Admin Checkbox -->
       <input type="checkbox" name="adminId[]" value="id1" />
    </label><br>
    <label>
       User ID2: 
       <!-- Admin Checkbox -->
       <input type="checkbox" name="adminId[]" value="id2" />
    </label><br>
    <label>
       User ID3: 
       <!-- Admin Checkbox -->
       <input type="checkbox" name="adminId[]" value="id3" />
    </label><br>
    <input type="submit" id="edit" name="edit"/>
</form>

PHP

<?php
// If edit button pressed
if( isset($_POST['edit'])) )
{
    // If Admin checkbox were selected then add Admin Rights
    if (isset($_POST['adminId']){
       $sql = 'UPDATE `usertable` SET `admin_rights`= 'true' WHERE id IN ('.implode(',', $_POST['adminId']).')';
       mysqli_query($sql);
    }
}
?>

看来我误解了你的问题,你仍然无法使用复选框(作为一个整体表单)列出用户。

看看下面的表格

<form action="" method="post">
    <input type = "submit" name="sql_update" value="SQL Update">
           
<?php
   $getusers = "SELECT id, username, firstname, lastname, admin FROM registered_users";
   $result = mysqli_query($db, $getusers);

   if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
         if ($row['admin'] == 1){
              echo "<br>". $row['id']. " &nbsp; - &nbsp;  " . $row['username']. "  &nbsp; - &nbsp;  " . $row['firstname']. " &nbsp; - &nbsp;  " .$row['lastname']. "  &nbsp; - &nbsp;  " .$row['admin']. "  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <input type='checkbox' name='admin_status[]' value='".$row['id']."' checked><br>";
         }
         else echo "<br>". $row['id']. " &nbsp; - &nbsp;  " . $row['username']. "  &nbsp; - &nbsp;  " . $row['firstname']. " &nbsp; - &nbsp;  " .$row['lastname']. "  &nbsp; - &nbsp;  " .$row['admin']. "  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <input type='checkbox' name='admin_status[]' value='".$row['id']."'><br>";
       }
   }
?>
</form>

检查$_POST值的代码:

<?php
   if (isset($_POST['sql_update'])) {
       if (empty($_POST["admin_status"])){
         echo ("Ni obkljukano");
       }
   }
?>

更新#2

的进一步更新
if (isset($_POST['sql_update'])) {
  // All unchecked, set all admin to 0
    if (empty($_POST['admin_status'])){
        $sql_admin_off = mysqli_query($conn, "UPDATE user SET admin = 0");
    }
    else{
        $sql_admin_on = mysqli_query($conn, "UPDATE user SET admin = 1 WHERE id IN (".implode(',', $_POST['admin_status']).") ");
        $sql_admin_off = mysqli_query($conn, "UPDATE user SET admin = 0 WHERE id NOT IN (".implode(',', $_POST['admin_status']).") ");
    }
}