2013-10-16 154 views
1

问题是PHP文件没有发回数据或者JS文件没有捕获数据。Ajax调用不被返回

确切的问题是,数据不会显示在<div>内的index.php页面上。 我在getDetails.php文件中包含代码来记录它在做什么。它允许我看到查询正在运行并且数据正在返回。

我以前用过类似的代码,没有任何问题。唯一的区别是前面的代码与MySQL一起工作。此代码正在处理Access数据库。我不知道是否需要使用json_encode来处理Access数据。

我在java.js的开头使用了一个alert()来确保调用java代码。它是。 details = result命令之后的警报从未被调用。

的index.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); 
?> 
+2

java.js,hah ... –

+0

如何在那里抛出一个ajax故障处理程序,并查看是否返回?另外,您是否尝试过调试“java.js”并查看“成功”上发生了什么 - 如果它甚至执行?控制台日志中的任何内容? –

+0

最有可能你的php没有返回json。 –

回答

1

我行"echo <br/>"在我getDetails.php。删除了该行,现在可以运行。