使用AJAX检索JSON数据

时间:2013-12-20 12:20:58

标签: php mysql ajax json

我在Stackoverflow中看到了一些相关的帖子。试过那段代码,但对我来说没有用。

我有一个代码可以从数据库中获取数据:

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;

}

此代码将连接到mysql,数据库并从数据库中检索数据。让我们说这个文件名是mysql.php。之后我有一个名为getjson.php的文件,这个文件将从mysql.php获取数据并发送到ajax。这个文件代码如下:

<?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。请帮助我。任何帮助,我一生都会欣赏。

2 个答案:

答案 0 :(得分:0)

尝试以下选项,

使用header('Content-type: application/json');设置内容类型,然后在jsonJms.php中回显您的数据。 [通过直接在地址栏中点击URL并指定wrkno变量来检查是否通过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" );
  });

希望它会对你有所帮助。 :)

答案 1 :(得分:0)

如果没有从PHP层返回任何内容,那么那就是你的问题所在。 确保您的数据库查询实际上是返回数据,如果是,请检查正在执行的操作。