簡體   English   中英

如何從JavaScript文件正確解壓縮編碼為JSON的PHP數組中的數據

[英]How to properly unpack data from PHP array encoded as JSON from a JavaScript file

我一直在進行數小時的搜索,並嘗試了不同的代碼段和技術片段,但我根本無法使它們工作。 我已經做過研究,我只是一個非常缺乏經驗的開發人員,試圖邊走邊學。

我的最終目標是:從MySQL數據庫提取並使用Chart.JS庫呈現測試結果數據的實時更新圖。

到目前為止,我所做的是:

  1. 我有一個帶有嵌入式JavaScript的HTML文件,並調用AJAX函數每隔5分鍾自動刷新頁面一次(此方法已經過測試並且可以工作)。
  2. 我有一個PHP文件,該文件打開與本地MySQL數據庫的PDO連接,運行3個選擇查詢,並將結果存儲到3個PHP數組中。 (我遍歷了數組並回顯了結果,數據很好)。
  3. 然后,我使用json_encode()將這些PHP數組內的數據存儲到JSON對象中,例如$totalTestsPassedArray = array(); $sql = "SELECT totalTestsPassed FROM execution ORDER BY lastDate"; $query = $conn->prepare($sql); $query->execute(array(':totalTestsPassed' => $totalTestsPassed)); while($row = $query->fetch()){ array_push($totalTestsPassedArray, $row['totalTestsPassed']); } $json_totalTestsPassedArray = json_encode($totalTestsPassedArray); //pack data into JSON object echo $json_totalTestsPassedArray; // for accessibility by AJAX foreach ($totalTestsPassedArray as $item){ //print out contents of array echo $item . '<br>'; } $totalTestsPassedArray = array(); $sql = "SELECT totalTestsPassed FROM execution ORDER BY lastDate"; $query = $conn->prepare($sql); $query->execute(array(':totalTestsPassed' => $totalTestsPassed)); while($row = $query->fetch()){ array_push($totalTestsPassedArray, $row['totalTestsPassed']); } $json_totalTestsPassedArray = json_encode($totalTestsPassedArray); //pack data into JSON object echo $json_totalTestsPassedArray; // for accessibility by AJAX foreach ($totalTestsPassedArray as $item){ //print out contents of array echo $item . '<br>'; }

我讀到一種使用此JSON數據的方法是使用jQuery的$ .getJSON方法,並且要使用它,我必須“回顯”我的json_encoded對象的結果。 我知道我要打印兩次結果。 回聲$ json_totalTestsPassedArray用於上述目的。

  1. 我已經使用<?php require '../file_name.php';?>從#1開始將此PHP文件的路徑包含在我的HTML文件中<?php require '../file_name.php';?>
  2. 我嘗試了幾種解壓縮與數據庫數據一起打包的JSON編碼對象的方法:使用AJAX請求,在HTML中創建一個新數組,然后使用$ .getJSON用JSON對象填充它,以及人們建議做的其他一些事情在網上的各種文件上,全部都失敗了。

有人可以告訴我做我想做的正確方法嗎? 我有一個包含數據數組的PHP文件,我想將該數據數組傳遞到數據集,以供Chart.JS用來填充圖形,然后將其繪制到畫布上並顯示我的結果。

var data = {
        labels : ["January","February","March","April","May","June","July"],
        datasets : [
            {
                fillColor : "rgba(220,220,220,0.5)",
                strokeColor : "rgba(220,220,220,0.8)",
                highlightFill: "rgba(220,220,220,0.75)",
                highlightStroke: "rgba(220,220,220,1)",
                data : [DATA FROM MY PHP ARRAY IN ANOTHER FILE WOULD GO HERE...]
            }

同樣,請原諒我的無知。 我已盡力自行找出解決方案,並非常感謝您提供一些指導。 這是我第一次使用這些工具。 我認為這很簡單:

  • 使用PHP腳本查詢數據庫
  • 將結果存儲到數組中
  • 打包成JSON對象(目標是將數據從PHP傳輸到JS文件)
  • 在JavaScript中解壓JSON對象
  • 將解壓縮的數據加載到我的JavaScript數組中

在php中僅打印json並將標頭content type設置為application/json那么您的XHR響應將包含javascript對象以及您的數據。 不需要任何json解析。

暫無
暫無

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

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