亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有確定和取消按鈕的 php 警告框

帶有確定和取消按鈕的 php 警告框

PHP
紅顏莎娜 2023-03-04 14:23:14
我有一個php 代碼(還有一點點 javascript),如下所示,當第二個用戶嘗試在一個用戶已經登錄的情況下登錄表單時,會顯示一條警告消息。我現在遇到的問題是在警告框中單擊“確定”時,它會進入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();    }?>為了調試目的,我添加了A 行/B 行。單擊“確定”按鈕將調用線路 A,單擊“取消”按鈕將再次調用線路 A。
查看完整描述

2 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

這是一個幫助您入門的簡單示例:


index.php

<?php

//....

$user =  "John Doe"; // $row['user_name'];

$message = "User $user is logged in. Do you want to take over?";


if (isset($_GET['takeover'])) {

    if ($_GET['takeover'] == "confirm") {

        // $stmt1 = $connect->pre......etc

        exit(json_encode(["message" => "Access confirmed"])); // Send response to JS

    } else {

        // $stmt1 = $connect->pre......etc

        exit(json_encode(["message" => "Access revoked"])); // Send response to JS

    }

}

?>

<!DOCTYPE html>

<html>

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>TEST</title>

</head>

<body>


  <h1>MY USER INTERFACE</h1>


  <script>

    const takeover = confirm("<?= $message ?>");

    fetch(`?takeover=${takeover ? "confirm" : "revoke"}`)

      .then(response => response.json())

      .then(data => {

        console.log(data);

      });

  </script>

</body>

</html>

  • 服務器將在提供頁面之前“剝離”PHP 標記,但回顯值將保留。即:$message在 JavaScript 代碼中。

  • 在 Document 上準備confirm()觸發器,在 JS 中攜帶一個布爾值。

  • 根據該值,只需使用 GET 請求獲取相同的文件(或任何其他文件)somepagename.php?takeover=confirm

  • 在 PHP 中偵聽$_GET請求并使用 JSON 響應響應 AJAX 請求。

  • 打開控制臺,查看服務器以足夠的消息對象數據響應。

快樂的編碼。


查看完整回答
反對 回復 2023-03-04
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

在你的 userpage.php 你有登錄:


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

在您的 confirm_login.php 中,您可以通過以下兩個選項進行確認:


$message = "user " . $_GET[user_name] . " is logged in. Do you want to take over ?";

<a href="userpage.php?confirm=yes">Yes</a>

<a href="userpage.php?confirm=no">No</a>

現在,當您選擇選項時,您將重定向回 userpage.php:


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();??

}

您可以使用 AJAX 來不更改 URL。


查看完整回答
反對 回復 2023-03-04
  • 2 回答
  • 0 關注
  • 191 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號