2012-07-30 31 views
0

我在服務器端有一個Postgresql數據庫。我想加載數據以便在HTML網頁上顯示。我將如何去能夠訪問JavaScript中的這些數據?那裏有教程嗎?這似乎是一件普通的事情,但目前爲止我似乎無法找到如何去做。我確實發現了一些關於使用php和node.js來做到這一點的stackoverflow問題,但我似乎無法得到這個工作。 PHP似乎是最簡單的方法,我從另一個問題複製了一些代碼,但它似乎並不奏效。如何將PostgreSQL數據加載到HTML/JS中

var patientData = []; 
    var patient_id = 8; 

    <?php 
      $connection = pg_connect("connectstuff"); 

      if(!$connection) 
      { 
        pg_close($connection); 
      } 

      $result = pg_query($connection, "query"); 
      if (!$result) 
      { 
        exit; 
      } 

      $row = pg_fetch_row($result, 0); 

      echo "patientdata = $row;"; 
      echo "alert('asdf')"; 
    ?> 

警報甚至沒有顯示,所以我不認爲PHP代碼甚至運行。

回答

0

檢查生成的頁面的來源,並確保您輸出$row值是實際合法有效的JavaScript。例如。如果它是代表一行數據的數組,php實際上將輸出Array,而不是該行的某個值。

除此之外,當使用PHP動態構建JavaScript時,您應始終使用json_encode()來確保您插入到JavaScript中的PHP變量以有效的javascript形式出現。在插入數據絲絲點點語法錯誤會殺死整個JS代碼塊,你會最終你現在在哪裏 - 爲什麼它死了一個不正常的頁面,並沒有想到:

patientdata = <?php echo json_encode($row) ?>; 

會100%保證無論你插入JS代碼不會導致解析器錯誤。數據是否真的可以與你的代碼一起工作是另一回事,但至少腳本不會在解析階段被殺死。

+0

好吧,爲了確保我的設置沒有錯,現在整個代碼塊都在.js文件中,應該可以工作,對吧?我沒有與json_encode的東西有任何區別。警報仍然不顯示,現在我的代碼的其餘部分也不會運行。另外,我將如何去在PHP代碼中使用js變量? – xhassassin 2012-07-30 16:45:30

+0

js在客戶端上運行,php在服務器上運行。除了通過ajax調用或在頁面生成時,您不能訪問其他任何一個。 – 2012-07-30 16:50:18

0

我會建議您使用PHP來查詢數據庫,建立一個本地數組或數據結構,並將其轉換爲JSON,您將返回到Javascript文件。查看http://php.net/manual/en/function.json-encode.php以進行PHP/JSON處理。我假設你的Javascript試圖通過AJAX請求訪問數據,但是你還沒有給出足夠的安裝細節來確定嗎?

相關問題