0

我在一个 Web 界面上工作,该界面接收信息并将信息发送到远处的 PostGreSQL 数据库。

从我在互联网上找到的内容看来,最好的方法是在外部 .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,它工作正常(我只是用我的脚本中输入的正确登录信息写了 Connected,或者如果我输入了一个随机的 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") 对象中,它将用 Connected 或 Not Connected 替换默认文本,但它不会对我的条件中的绿/红灯产生任何影响

然后我进入我的 Chrome 控制台并输入 dbstatus,我意识到我的 var 的内容是

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

当我期望它只是“连接”时。

关于如何从所有这些额外的 html 内容中清除该 var 的任何想法?

是否有在 js 或 Jquery 中实现更简单的方法来检查 postgreSQL 数据库状态?

4

2 回答 2

0

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

于 2013-02-04T18:10:28.247 回答
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*/}
    }
  });
});
于 2013-02-04T18:12:31.300 回答