单击 js 警报框中的确定/取消按钮更新 php 中的数据库表

use*_*349 0 javascript php alert

我有一个 php 代码(所有代码都在同一个文件mno.php 中),其中一次只允许一个用户登录。当另一个用户同时登录时,会显示一条警告消息。

当第一个用户登录时,它进入else块内(在 B 行)。

当第二个用户同时登录 时,它会进入 if 块if (mysqli_num_rows($result1) > 0)并且警报消息将显示(在 A 行) 用户用户 A 当前正在登录。你想接管吗?(带有确定和取消按钮)。

在此处输入图片说明

php文件

/* php function for alert message */
function phpAlert($msg)
{
    echo '<script type="text/javascript">confirm("' . $msg . '")</script>';
}


if (mysqli_num_rows($result1) > 0) {
    while ($row = mysqli_fetch_array($result1)) {
        if ($row['open'] == "true") {
            if (!isset($_SESSION['admin'])) {
                 $message = "user " . $row['user_name'] . " is logged in. Do you want to take over ?";   
                 phpAlert($message); //Line A
            }
            break;
        }
    }
} else {
    $_SESSION['admin'] = true;  // Line B
}
Run Code Online (Sandbox Code Playgroud)

单击警报框中的确定/取消按钮时,我希望运行以下查询:

确定按钮:
在此处输入图片说明

$stmt1=$connect->prepare("UPDATE trace_users SET write_access='0' WHERE write_access='1'"); // revoke write access of all users
$stmt1->execute();
Run Code Online (Sandbox Code Playgroud)

取消按钮:

在此处输入图片说明

session_destroy();   // destroy session data in storage
!isset($_SESSION['admin']);
header('location: /abc/mno.php');
Run Code Online (Sandbox Code Playgroud)



这是我尝试过的,但我认为还需要做更多的工作,因为单击“确定”和“取消”按钮时不会调用下面的 if 和 else 块

if ( $_GET[confirm] == "yes" ) {
    $stmt1=$connect->prepare("UPDATE trace_users SET write_access='0' WHERE write_access='1'"); // revoke write access of all users
    $stmt1->execute();
} else if ( $_GET[confirm] == "no" ) {
    session_destroy();   // destroy session data in storage
    !isset($_SESSION['admin']);
    header('location: /abc/mno.php');
}
Run Code Online (Sandbox Code Playgroud)

Ous*_*OUD 6

您应该创建两个单独的 php 文件,其中包含您放入 if 和 else 块中的内容,然后使用 ajax 调用这些文件。所以基本上你从你的 js 脚本开始并更新它以调用一个函数而不是直接调用确认:

echo '<script type="text/javascript">myConfirmFunction("' . $msg . '")</script>';
Run Code Online (Sandbox Code Playgroud)

并myConfirmFunction在<script>像这样的块中实现:

<script type="text/javascript">
    function myConfirmFunction(message) {
        if(confirm(message)) {
            $.ajax({
                url: "update_trace_users.php",
                type: "GET",
                data: {},
                success: function(result) {
                      // Do something with result
                }
            });
        } else {
            $.ajax({
                url: "session_destroy.php",
                type: "GET",
                data: {}, // you can pass data to your php script
                success: function(result) {
                      // Do something with result
                }
            });
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助你!