2013-02-04 18 views
0

我使用一個Web界面來接收和發送信息到遠程PostGreSQL數據庫。檢查與我的數據庫的連接的最佳方法js

從我在互聯網上發現,似乎最好的方法是在外部.php文件中創建一個小的PHP腳本。

我也跟着在風格,理念,

,所以我有一個劇本pg_connection.php其測試連接到我的數據庫(用pg_connect):

$db = pg_connect("host=localhost port=5432 dbname=**** user=**** password=****") 
or die("Not Connected"); 
if ($db) {echo (Connected);} else {echo (Not Connected);} 

如果我啓動只是pg_connection .php在我的瀏覽器,它工作正常(我只是有wrotten連接正確的登錄信息輸入在我的腳本或未連接,如果我把一個隨機的IP地址)。

然後在我的.js(+ jQuery的)外部腳本使用:

$(document).ready(function(){ 
$("#dbstatus").load("php-services/pg_connection.php"); 
var dbstatus = new String(); 
dbstatus = $("#dbstatus").val(); 

if (dbstatus == "Connected") 
{ /*jquery code to show a green light on a section in my html page*/} 
else { /*jquery code to show a red light*/} 
} 

而這部分工作:

在我的$( 「#dbstatus」)反對將取代默認的文本由器是否連接, 但它不會產生綠色/紅燈任何效果在我conditionnal

然後我在Chrome的控制檯,輸入dbstatus去了,我意識到,我的VAR的內容是

<div id=​"dbstatus" class=​"span3">​Connected​</div>​ 

當我預計它只是「連接」。

任何想法如何從所有這些額外的HTML東西清除var?

是否有更簡單的方法在js或Jquery中執行來檢查postgreSQL數據庫狀態?

回答

0

嘗試修改您的代碼:

$db = pg_connect("host=localhost port=5432 dbname=**** user=**** password=****") or die("0"); 
if ($db) {echo "1";} else {echo "0"} 

而且在JS:

$(document).ready(function(){ 
    $.ajax({ 
    url: "http://fullpathto/php-services/pg_connection.php", 
    cache: false 
    }).done(function(result) { 
    if(result=="1") { 
     /*jquery code to show a green light on a section in my html page*/ 
    } 
    else 
    { 
     /*jquery code to show a red light*/} 
    } 
    }); 
}); 
+0

他發送的內容真的沒有關係。問題是,他捕獲了加載div的HTML ... –

+0

也許,但$ .ajax似乎是一種非常合理的查詢方式,而不是使用中間div,然後閱讀div內容。相反,您應該只是閱讀AJAX調用的響應,並且您還可以對complete(),error()等進行更多的控制。另外,使用0/1形式而不是「Connected/Not connected」用於代碼其他部分的未來布爾評估。 –

+0

這就是我提出的。 –

0

而不是$("#dbstatus").val();使用$("#dbstatus").html();

+0

遺憾的是它不工作,當我檢查在Chrome的控制檯,爲我的VAR dbstatus,我還是有

​Connected​
Manuhoz

相關問題