Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有“确定”和“取消”按钮的php警报框_Javascript_Php_Alert - Fatal编程技术网

Javascript 带有“确定”和“取消”按钮的php警报框

Javascript 带有“确定”和“取消”按钮的php警报框,javascript,php,alert,Javascript,Php,Alert,我有一个php代码(还有一点javascript)如下所示,其中当第二个用户尝试登录表单时,会显示一条警报消息 <?php $message = "user " . $row['user_name'] . " is logged in. Do you want to take over ?"; echo "<script type='text/javascript'>confirm('$message');</script>"; if(con

我有一个php代码(还有一点javascript)如下所示,其中当第二个用户尝试登录表单时,会显示一条警报消息

<?php
    $message = "user " . $row['user_name'] . " is logged in. Do you want to take over ?";
    echo "<script type='text/javascript'>confirm('$message');</script>";
    if(confirm)
    {
        $stmt1=$connect->prepare("UPDATE trace_users SET write_access='0' WHERE write_access='1'"); // revoke write access of all users
        $stmt1->execute();
    }
    else
    {
        echo "I am in else block";  // Line A
        $stmt1=$connect->prepare("UPDATE trace_users SET write_access='1' WHERE write_access='0'"); // revoke write access of all users
        $stmt1->execute();
    }
?>
我现在遇到的问题是,单击警报框中的确定时,它会进入if块,但单击取消时,它不会进入else块 再次在if块内部

<?php
    $message = "user " . $row['user_name'] . " is logged in. Do you want to take over ?";
    echo "<script type='text/javascript'>confirm('$message');</script>";
    if(confirm)
    {
        $stmt1=$connect->prepare("UPDATE trace_users SET write_access='0' WHERE write_access='1'"); // revoke write access of all users
        $stmt1->execute();
    }
    else
    {
        echo "I am in else block";  // Line A
        $stmt1=$connect->prepare("UPDATE trace_users SET write_access='1' WHERE write_access='0'"); // revoke write access of all users
        $stmt1->execute();
    }
?>

以下是一个快速入门的示例:

index.php

测验
我的用户界面
const takeover=确认(“”);
获取(`?takeover=${takeover?“确认”:“撤销”}`)
.then(response=>response.json())
。然后(数据=>{
控制台日志(数据);
});
  • 服务器将在提供页面之前“剥离”PHP标记,但回显值将保留。即:JavaScript代码中的
    $message
  • 在文档准备就绪时,
    confirm()
    触发,并在JS中携带一个布尔值
  • 根据该值,只需使用GET请求
    somepagename.php?takeover=confirm
  • 在PHP中侦听
    $\u GET
    请求,并使用JSON响应响应AJAX请求
  • 打开控制台,看到服务器用足够的消息对象数据进行响应

愉快的编码。

在您的userpage.php上,您可以登录:

<a href="confirm_login.php?user_name=" . $row['user_name']>Log In</a>

这是本文中描述的普通PHP方法。正如其他酷家伙所说,您可以使用AJAX不更改URL

PHP代码呈现HTML并将其发送到客户端。只有到那时,JavaScript才会被执行,PHP才开始转向其他方面。用计算机术语来说,自从HTML通过网络发送到客户端已经过去了一百年,到浏览器实际执行它的时候,它已经是一段古老的历史了。您不能像PHP那样在PHP的中间混合JavaScript。JS对浏览器进行响应,而不是对服务器进行响应。你把东西混在一起了。您可以使用JS将AJAX发送到服务器-如果您想…“更糟糕的是Jim”javascript在到达浏览器之前不会运行,因此PHP中不会存在
confirm
(无论如何它不是PHP变量(没有$),因此您应该至少得到一个错误a)避免在代码中使用
alert()
。它令人恼火和愤怒,因为它可以在你最不经意的时候窃取焦点并锁定你的浏览器。B) 在链接到执行数据库操作的另一个更新脚本的页面上,使用样式为按钮的链接。C) 如果有必要,可以使用AJAX。嘿,当我登录时,我会收到没有消息的警报。警报有“确定”和“取消”按钮,就是这样。@user1950349如果您将上述内容保存为
index.php
,并使用php服务器运行它,即:
php-S localhost:8000
,您将看到它正在工作。不要忘记F12打开浏览器控制台,查看服务器的
console.log()
响应。
if ( $_GET[confirm] == "yes" ) {
    $stmt1=$connect->prepare("UPDATE trace_users SET write_access='0' WHEREwrite_access='1'");
    $stmt1->execute();
} else if ( $_GET[confirm] == "no" ) {
    $stmt1=$connect->prepare("UPDATE trace_users SET write_access='1' WHERE write_access='0'"); // revoke write access of all users
    $stmt1->execute();  
}