0

相关:通过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"}

4

3 回答 3

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>
于 2012-09-13T20:24:16.057 回答
0

Javascript 将拉下 http 服务器提供的任何内容。因此,如果 http 服务器未正确配置为处理您的服务器端脚本 IE php,那么您将获取文件的内容,而不是运行 php 脚本时处理的 html 输出。请联系您的服务器管理员进行修复,并确认您在文件上使用的是 .php 扩展名,而不是 .txt。

于 2012-09-13T20:28:40.900 回答
0

找到了解决方案。

问题出在我正在研究一个network share drive......它也恰好生活在web server.

因此,每当我去测试脚本时,它都会像这样获取我的文件:

file:////mySubDomain.myDomain.com/getRowCounts.php...考虑到服务器没有提供服务,这显然行不通。

file:////通过更改为修复http://

于 2012-09-13T20:46:27.983 回答