如何添加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"]. " - " . $row["username"]. " - " . $row["firstname"]. " - " .$row["lastname"]. " - " .$row["admin"]. " " .$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']. " - " . $row['username']. " - " . $row['firstname']. " - " .$row['lastname']. " - " .$row['admin']. " <input type='checkbox' name='admin_status[]' value='".$row['id']."' checked><br>";
}
else echo "<br>". $row['id']. " - " . $row['username']. " - " . $row['firstname']. " - " .$row['lastname']. " - " .$row['admin']. " <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']).") ");
}
}
编辑:
代码:
<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"]. " - " . $row["username"]. " - " . $row["firstname"]. " - " .$row["lastname"]. " - " .$row["admin"]. " " .$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']. " - " . $row['username']. " - " . $row['firstname']. " - " .$row['lastname']. " - " .$row['admin']. " <input type='checkbox' name='admin_status[]' value='".$row['id']."' checked><br>";
}
else echo "<br>". $row['id']. " - " . $row['username']. " - " . $row['firstname']. " - " .$row['lastname']. " - " .$row['admin']. " <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']).") ");
}
}