簡體   English   中英

使用Java腳本更改PHP輸出

[英]Changing PHP output using Javascript

  • 我正在建立一個網站,該網站使用PHP將一些數據從mySQL數據庫打印到表中。
  • 我希望在翻轉開關時可以使用其他搜索查詢來刷新此數據。

這是開關的javascript函數:

function switch2hecked() {
    if (document.getElementById("switch2").checked)
                             // update mySQL query  }

我的PHP代碼如下所示:

        $sql = "SELECT * FROM $table WHERE day = 'mon' ORDER BY realtime";
        $result = mysqli_query($con, $sql);
        while($row = mysqli_fetch_array($result)) {             
            echo
            "<div class='dtime' >".$row["displaytime"]."</div>"
            ."<div class='name' >".$row["name"]."</div>"
            ."<div class='venue' >".$row["venue"]."</div>"
            ."<div class='address' >".'<a href="'.$row["loc"].'"target="_blank"> '.$row["address"].'</a>'."</div>"
            ."<div class='signup' >".$row["signup"]."</div>"
            ."<div class='email' >".'<a href="mailto:'.$row["email"].'"target="_blank"> '.$row["email"].' </a>'."</div>"
            ."<div class='details' >".$row["details"]."</div>
            <br>";
            }

我需要的是通過某種方式將變量傳遞到PHP代碼中,以便可以將其用於查詢的if語句。

幫助非常感謝!

您可以使用AJAX來實現。

AJAX允許Javascript與PHP進行通信,反之亦然,這可以更新網頁的一部分而不刷新整個頁面。 您也可以將AJAX與jQuery一起使用。 這很容易設置。

閱讀此文檔,其中也包含示例: .ajax()| jQuery的

這是您的JavaScript代碼:

function switch2hecked() {
    if (document.getElementById("switch2").checked) {
        document.location = 'http://mydomain/api/data?switch2=1'
    }

和您的PHP代碼:

        if ($_GET['switch2']) {
            $sql = "SELECT * FROM $table WHERE day = 'mon2' ORDER BY realtime";
        } else {
            $sql = "SELECT * FROM $table WHERE day = 'mon' ORDER BY realtime";
        }
        $result = mysqli_query($con, $sql);
        while($row = mysqli_fetch_array($result)) {             
            echo
            "<div class='dtime' >".$row["displaytime"]."</div>"
            ."<div class='name' >".$row["name"]."</div>"
            ."<div class='venue' >".$row["venue"]."</div>"
            ."<div class='address' >".'<a href="'.$row["loc"].'"target="_blank"> '.$row["address"].'</a>'."</div>"
            ."<div class='signup' >".$row["signup"]."</div>"
            ."<div class='email' >".'<a href="mailto:'.$row["email"].'"target="_blank"> '.$row["email"].' </a>'."</div>"
            ."<div class='details' >".$row["details"]."</div>
            <br>";
            }

當然,如果您想擁有一個更加動態的頁面,則可以使用AJAX,但這會更加復雜。

jQuery Ajax是解決方案。 這是一個例子

function switch2hecked() {
     var toggle = document.getElementById("switch2").checked;
     $.ajax({
       type: "GET",
       url: "path/to/your/page.php",
       dataType: "json",
       data: { enabled: toggle }
     }).done(function( json ) {
       // Do the magic here...
       // the output of the php page will be in the json variable. 
     });
}

因此,您的PHP頁面將使用GET參數進行調用。

path/to/your/page.php?enabled=true

您需要將查詢結果輸出到PHP頁面中的有效JSON字符串中。 這是您可以執行的操作:

if ($_GET['enabled']) {
    $sql = "SELECT * FROM $table WHERE day = 'mon2' ORDER BY realtime";
} else {
    $sql = "SELECT * FROM $table WHERE day = 'mon' ORDER BY realtime";
}
$result = mysqli_query($con, $sql);
echo json_encode($result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM