我在一个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);}
如果我在我的webbrowser中只启动了那个pg_connection.php,它运行正常(我只是已经连接了我在脚本中输入的正确登录信息,或者如果我输入一个随机的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</div>
当我预计它只是“连接”时。
关于如何从所有这些额外的html内容中清除var的任何想法?
在js或Jquery中是否有更简单的方法来检查postgreSQL数据库状态?
答案 0 :(得分:0)
而不是$("#dbstatus").val();
使用$("#dbstatus").html();
。
答案 1 :(得分: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*/}
}
});
});