2016-05-31 110 views
0

好了,所以這是我面對現在的問題如何從使用AJAX POST方法

其實我已經成功地訪問JSON PHP內,但有一個條件,沒有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(); 
} 
?> 

Here is My Javascript

好吧,所以我試圖發送請求到服務器運行特定的功能,通過發送func =檢索到addVisit.php,然後運行該功能後,我趕上服務器回聲的JSON,但它似乎不起作用像我所料,這裏是代碼,該部分不爲我

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

工作,因此,使用AJAX如何訪問JSON在PHP中的特定功能的一部分嗎?

+2

'如果($ _ POST [ '功能'] == 「檢索」'你有語法錯誤。您應該查看控制檯日誌和服務器日誌以查找錯誤。另外,你的AJAX請求是異步的,你試圖解析尚未到達的響應 –

+0

修復JS(line38)中的語法錯誤。正確的是:'if(desc.css('opacity')=== 0 &&(flag!== now)){' – Dumkaaa

+0

@PatrickEvans該死的傢伙保存了我的一天,想知道這麼久了,只是意識到錯誤! – Kevin

回答

1

PHP是大小寫敏感的,其功能名稱。 您嘗試調用addVisitor()

... 

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

... 

但是你定義的函數名稱爲:

function add**v**isitor() 

這會導致問題

這也是調試JavaScript非常有益的是使用開發人員工具包,通常默認在您的瀏覽器(例如Chrome或Opera默認爲它) 您可以轉儲您的JavaScript變量,調用,返回並調試它們,通過擴展您的像這樣的東西

console.log(variable_name_goes_here) 
0

試試這個: - 呼叫按鈕此功能的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(); 
}