2013-10-16 159 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。刪除了該行,現在可以運行。