【问题标题】:How to check the status of a checkbox (switch) after the submit提交后如何检查复选框(开关)的状态
【发布时间】:2019-05-14 00:37:22
【问题描述】:

在我放入复选框(开关)的表单中,提交后如何发布以检查 MySQL 更新的开关状态?谢谢

因此 MySQL 表不会改变。

从复选框并提交

<form method="POST" action="process.php">
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="switch-1">
<input type="checkbox" id="switch-1" class="mdl-switch__input" checked>
<span class="mdl-switch__label">Autenticazione a due fattori</span>
</label>
....
<input onclick="conferma();" class="mdl-button mdl-js-button 
mdl-button--raised mdl-js-ripple-effect mdl-button--accent" type="submit" 
value="Salva" name="submitBtn">
</form>

开关控制和MySQL更新(process.php)

<?php 
session_start();
mysql_connect(localhost) or die(mysql_error()); 
mysql_select_db("*******") or die(mysql_error()); 
$user = $_SESSION['users'];
if(isset($_POST['submitBtn'])) { //form submission occured
    if(!isset($_POST['switch-1'])){            
        $sql = "UPDATE `*******`.`login_users` SET `auth` = \'checked\' WHERE username = '$user'";
        header("location: https://*******.php");
    } else {
        $sql = "UPDATE `*******`.`login_users` SET `auth` = \'unchecked\' WHERE username = '$user'";
        header("location: https://*******.php");
    }
}

?>

【问题讨论】:

  • 你是不是把php放到js里面了?
  • PHP 在页面发送到客户端之前在服务器上运行。它不在客户端上运行。
  • 为什么你把script标签和php放在里面?
  • 为此目的使用 ajax
  • 我现在发现我错了

标签: php mysql checkbox


【解决方案1】:

1) 修改表单

<form method="POST" action="process.php">

    <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="switch-1">
    <input type="checkbox" name="switch-1" id="switch-1" class="mdl-switch__input" checked>
    <span class="mdl-switch__label">Autenticazione a due fattori</span>
    </label>
    ....
    <input type="submit" value="Salva" name="submitBtn" class="mdl-button mdl-js-button 
    mdl-button--raised mdl-js-ripple-effect mdl-button--accent" >

</form>

2) 在同一工作目录中创建一个新的process.php 页面并添加这些。

编辑:

<?php

session_start();
$user = $_SESSION['users'];

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "YourDBName";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

if(isset($_POST['submitBtn'])) { //form submission occured

    if(isset($_POST['switch-1'])){                       
        $sql = "UPDATE login_users SET auth = 'checked' WHERE username = '$user'";
    } else {
        $sql = "UPDATE login_users SET auth = 'no' WHERE username = '$user'";
    }

    if ($conn->query($sql)) {
        echo "Updated successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }

} else {
    echo "Form Submission Error";
}

$conn->close();
?>

希望对你有帮助。

【讨论】:

  • 我什么都做了,但是 MySQL 没有改变任何东西
  • 表示更新成功,但如果在 MySQL 中开关关闭,则写入检查并且没有“否”
  • 更改 if(isset($_POST['switch-1'])) 代码。以上修改。
  • 现在总是“不”
  • 忘记在 input type="checkbox" 中添加 name="switch-1"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-25
  • 2017-03-01
  • 1970-01-01
相关资源
最近更新 更多