相关:Query Database through Javascript / PHP
这个问题与我的上述问题有关。我将PHP脚本修复为我的一个答案中提到的那个;我试图使用$.getJSON
无济于事。所以我坚持使用我从服务器获取响应的原始方法:
function getDatabaseRows()
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
alert(xmlHttp.responseText);
}
}
xmlHttp.open("POST", "myDomain.com/subDirectory/getRowCounts.php", true);
xmlHttp.send(null);
}
当警报运行时,它就像是一个文本文件,并获取我的PHP脚本的全部内容。它不运行脚本,它只是从服务器上获取它的文本副本。我的脚本(在前面的问题中链接)是:
$rowCounts = array();
$dbhost = 'host';
$dbuser = 'host';
$dbpass = 'host';
$dbase = 'host';
$fields = array(
'MaxTID' => array('tab' => 'TransData', 'col' => 'TID'),
'MaxSID' => array('tab' => 'FullData', 'col' => 'SID'),
'MaxFID' => array('tab' => 'SalamanderData', 'col' => 'FID'),
'MaxOID' => array('tab' => 'OthersData', 'col' => 'OID')
);
$con = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql');
mysql_select_db($dbase, $con) or die(mysql_error());
foreach ($fields as $id => $info) {
$sql = "SELECT MAX({$info['col']}) FROM {$info['tab']}";
$result = mysql_query($sql, $con);
if (!$result) die('Could not query:' . mysql_error());
$rowCounts[$id] = mysql_result($result, 0);
}
echo json_encode($rowCounts);
mysql_close($con);
有关为什么我的AJAX脚本在服务器上返回PHP脚本的文本副本的任何线索;而不是我要找的JSON结果?
编辑:
将浏览器指向PHP脚本返回:
{"MaxTID":"1","MaxFID":null,"MaxSID":"3","MaxOID":"1"}
答案 0 :(得分:0)
$。getJSON是jQuery,因此您需要将其包含在您的页面中:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script>
$.getJSON('http://myDomain.com/subDirectory/getRowCounts.php', function(response) {
console.log(response);
});
</script>
答案 1 :(得分:0)
Javascript将拉下http服务器提供的任何内容。因此,如果没有正确配置http服务器来处理服务器端脚本I.E. php,然后你将从运行php脚本获取文件的内容而不是处理过的html输出。联系您的服务器管理员以解决问题,并确认您在文件上使用.php扩展名,而不是.txt。
答案 2 :(得分:0)
找到了解决方案。
问题在于我正在研究network share drive
....这也恰好生活在web server
上。
所以每当我去测试脚本时,它都会像我这样获取文件:
file:////mySubDomain.myDomain.com/getRowCounts.php
...显然无法正常工作,因为服务器没有提供服务。
通过将file:////
更改为http://