1

問題は、PHP ファイルがデータを送り返していないか、JS ファイルがデータをキャッチしていないことです。

正確な問題は、データが .php 内の index.php ページに表示されないこと<div>です。getDetails.php ファイルにコードを含めて、実行内容を記録しました。クエリが実行され、データが返されていることを確認できます。

過去にこれと同様のコードを問題なく使用しました。唯一の違いは、前のコードが MySQL で動作していたことです。このコードは Access データベースを扱っています。Access データを処理するために json_encode で何か特別なことをする必要があるかどうかはわかりません。

alert()java.js の先頭でを使用して、Java コードが呼び出されていることを確認しました。です。details = resultコマンドが呼び出されない直後のアラート。

索引.PHP:

<!doctype html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/plain; charset=UTF-8"/>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script src="java.js" type="text/javascript"></script>
    </head>
    <body>
        <div id="reportDetails" class="reportDetails" align=center></div>
    </body>
<html>

JAVA.JS:

jQuery(document).ready(function () {
    var ra='7100913063';
    $.ajax({
        type: 'POST',
        url: 'getDetails.php',
        data: 'value=' + ra,
        dataType: 'json',
        cache: false,
        success: function(result) {
            details = result;
            $("#reportDetails").text("");
            for (var i = 0; i < details.length; i++) {
                $("#reportDetails").append("<tr class='bottom'><td width=200 align=center class='bottom'>" + details[i][0] + "</td><td width=200 align=center class='bottom'>" + details[i][1] + "</td><td width=200 align=center  class='bottom'> " + details[i][2] +"</td></td><td width=200 align=center  class='bottom'> " + details[i][3] +"</td></td></tr>");
            }
            $("#reportDetails").append("</table>");
        },
    });
});

getDetails.php

<?php
include("../../scripts/adodb/adodb.inc.php");

$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");

$ra = $_POST['value'];
set_time_limit(0);
date_default_timezone_set('America/Chicago');                                       
$counter = 0;

$connect = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=//server/directory/database.mdb", '', '');
$query = "SELECT distinct ra, MIN(received) as startDate, MAX(completion) AS stopDate, MAX(status) as stat FROM cont WHERE ra = '" . $ra . "' GROUP BY ra";
$result = odbc_exec($connect,$query);

while(odbc_fetch_row($result)){
    $radetails[0] = odbc_result($result,"ra");
    fwrite($fh, $radetails[0]);
    $radetails[1] = odbc_result($result,"startDate");
    fwrite($fh, $radetails[1]);
    $radetails[2] = odbc_result($result,"stopDate");
    fwrite($fh, $radetails[2]);
    $radetails[3] = odbc_result($result,"stat");
    fwrite($fh, $radetails[3]);
}
fclose($fh);
echo json_encode($radetails);
?>
4

1 に答える 1

1

"echo <br/>"getDetails.phpに行がありました。その行を削除し、現在は機能しています。

于 2013-10-16T21:36:25.340 に答える