簡體   English   中英

如何使用AJAX發布方法從PHP的特定函數中檢索JSON

[英]How can I retrieve JSON from PHP's specific function using AJAX post Method

好的,這就是我現在面臨的問題

實際上,我已經成功地在php中訪問了JSON,但是在一種情況下,沒有定義特定的函數,現在,我需要從特定的PHP函數訪問JSON。

所以這是我的PHP看起來像

<?php

if(isset($_GET['func']))
{
    if($_GET['func'] == "add")
       addVisitor();
}
elseif(!empty($_POST['func']))
{
    if($_POST['func']=="retrieve"
        getData()
}

function addvisitor()
{
    $servername = "localhost";
    $username = "root";
    $password = "@123";
    $dbname = "numberofvisit";
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "UPDATE visitor SET count = count +1 WHERE idvisitor = 1 ";

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }

    $conn->close();
}

function getData(){
    $servername = "localhost";
    $username = "root";
    $password = "@123";
    $dbname = "rating";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 


    $sql = "SELECT avg FROM feedback WHERE idoveralRating=1";
    $result = $conn->query($sql);

    $pass=mysqli_fetch_assoc($result);

    echo json_encode($pass["avg"]);

    $conn->close();
}
?>

這是我的Javascript

好的,所以我試圖向服務器發送請求以運行特定功能,方法是將func = retrieve發送到addVisit.php,然后在運行該功能后,我捕獲了服務器回顯的JSON,但似乎無法正常工作我期望,這是該部分不適用於我的代碼

var req = new XMLHttpRequest();
req.open("POST", "addVisit.php", true);
req.send("func=retrieve");
var jsonObject = JSON.parse(req.responseText);

那么,如何使用ajax在PHP的特定功能中訪問JSON?

PHP的功能名稱區分大小寫。 您嘗試調用addVisitor()

...

if($_GET['func'] == "add")
   add**V**isitor();
}

...

但是您定義的函數名稱是:

function add**v**isitor()

這會導致問題

這對於調試javascript也非常有幫助,它是使用開發者工具包(通常在瀏覽器中默認使用的)(例如,Chrome或Opera在默認情況下具有此工具包)。

console.log(variable_name_goes_here)

嘗試一下:-在單擊按鈕時調用此getData函數

function getData()
{
var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
      document.getElementById("demo").innerHTML = xhttp.responseText;
    }
  };
  xhttp.open("POST", "addVisit.php", true);
  xhttp.send();
}

暫無
暫無

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

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