0

関連: Javascript / PHP によるデータベースのクエリ

この質問は、私の上記の質問に関連しています。私の回答の1つに記載されているように、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

Javascriptは、httpサーバーが提供するものは何でもプルダウンします。したがって、httpサーバーがサーバー側スクリプトIE phpを処理するように正しく構成されていない場合は、phpスクリプトの実行から処理されたhtml出力ではなく、ファイルの内容を取得することになります。サーバー管理者に連絡して修正を依頼し、ファイルに.txtではなく.php拡張子を使用していることを確認してください。

于 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 に答える
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 に答える