Javascript 带有“确定”和“取消”按钮的php警报框
我有一个php代码(还有一点javascript)如下所示,其中当第二个用户尝试登录表单时,会显示一条警报消息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
$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();
}