2013-12-20 46 views
0

我曾在Stackoverflow中看到过与其相关的其他文章。试过这个代码,但它没有为我工作。使用AJAX检索JSON数据

我有一个代码,将从数据库中获取数据是这样的:

function getWrkNoTest($wrkno){ 

    $conf = new BBAgentConf(); 
    $log = new KLogger($conf->get_BBLogPath().$conf->get_BBDateLogFormat(), $conf->get_BBLogPriority()); 
    $connection = MySQLConnection(); 

    $getWrkNoTest =""; 
    $lArrayIndex = 0; 

     $query = mysql_query("SELECT a.jobinfoid, a.WRKNo, a.cate, a.det, a.compclosed, a.feedback, a.infoID, b.callerid, b.customername FROM 
bb_jmsjobinfo a 
LEFT JOIN bb_customer b ON a.customerid = b.customerid 
WHERE a.WRKNo = '$wrkno';"); 

    $result = mysql_query($query); 

    $log->LogDebug("Query[".$query."]"); 

    while ($row = mysql_fetch_array($result)){ 
      $getWrkNoTest = array("jobinfoid"=>$row['jobinfoid'], 
       "WRKNo"=>$row['WRKNo'], 
       "cate"=>$row['cate'], 
       "det"=>$row['det'], 
       "compclosed"=>$row['compclosed'], 
       "feedback"=>$row['feedback'], 
       "infoID"=>$row['customerid'], 
       "customerid"=>$row['infoID'], 
       "callerid"=>$row['callerid'], 
      "customername"=>$row['customername']); 

      $iList[$lArrayIndex] = $getWrkNoTest; 
      $lArrayIndex = $lArrayIndex + 1; 

     } 
     $QueryResult = print_r($getWrkNoTest,true); 
     $log->LogDebug("QueryResult[".$QueryResult."]"); 
     closeDB($connection); 
     return $iList; 

} 

此代码将从数据库.Lets连接到MySQL数据库和检索数据说这个文件名是mysql.php。经过我有一个getjson.php文件命名,这个文件将从mysql.php获取数据并传送到阿贾克斯。这个文件的代码如下:

<?php 
//getCustomerNames will display all customer name that use the same number phone ,displayed on *top callername slection 

include 'mysql.php'; 

     $wrkno = $_GET["wrkno"]; 

     $jms = getWrkNoTest($wrkno); 

     foreach($jms as $findContact){ 
      $findContact['jobinfoid']; 
      $findContact['WRKNo'] ; 
      $findContact['cate'] ; 
      $findContact['det'] ; 
      $findContact['compclosed'] ; 
      $findContact['feedback'] ; 
      $findContact['customerid'] ; 
      $findContact['infoID']; 
      $findContact['infoID']; 
      $findContact['customername'] ; 
      $matches[] = $findContact; 
     } 
     echo json_encode($matches); 
?> 

然后,这是我的Ajax代码,将分析所有数据到html:

$.getJSON("jsonJms.php", {wrkno: wrkno}, function(data) { 
       $.each(data, function(key,val) {        
        $("#cname").val(val.customername); 
        $("#cnumb").val(val.callerid); 
        $("#comp").val(val.compclosed); 
        $("#cate").val(val.cate); 
        $("#det").val(val.det); 
        $("#feed").val(val.feedback); 


       }); 
      }); 

当这在浏览器中运行时,只是给出一个输出Null。请帮助我。任何帮助,我将在我的整个人生中感激。

+1

如果你看看firebug中服务器的响应形式,实际上从jsonJms.php返回的是什么? – Jiminyjetson

+0

@Jiminyjetson它没有给出任何回应 – art

+0

好的,所以你的GET请求返回一个空的响应?如果你直接去[你的本地主机url] /jsonJMS.php?workno= [测试值],它是否仍然没有返回? – Jiminyjetson

回答

0

尝试下面的选项,

将内容类型与header('Content-type: application/json');,然后在jsonJms.php回波数据。 [通过分配wrkno变量直接在地址栏中点击URL来检查是否通过JSON数据获取数据]。

修改代码,如下图所示,

$.getJSON("jsonJms.php", {wrkno: wrkno}, function(data) {            
          $("#cname").val(data.customername); 
          $("#cnumb").val(data.callerid); 
          $("#comp").val(data.compclosed); 
          $("#cate").val(data.cate); 
          $("#det").val(data.det); 
          $("#feed").val(data.feedback); 

     }) 
    .done(function() { 
    alert("second success"); 
    }) 
    .fail(function() { 
    alert("error"); 
    }) 
    .always(function() { 
    alert("complete"); 
    }); 

希望它会帮助你。 :)

0

如果没有什么东西从PHP层返回,那么这就是您的问题所在。 确保您的数据库查询实际上正在返回数据,如果是这样,请检查它是如何完成的。