php - 使用 AJAX 检索 JSON 数据

标签 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 。请帮助我。任何帮助我都会感激一生。

最佳答案

尝试以下选项,

使用 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" );
  });

希望对您有帮助。 :)

关于php - 使用 AJAX 检索 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20703530/

相关文章:

jquery - 如何访问通过 AJAX 请求发布的 Ruby on Rails Controller 中的数据?

javascript - 如何检测ajax驱动的网站

php - 无法在 Eloquent/Query Builder 中使用多个占位符

mysql - 这意味着什么“如果值大于可以存储的最大整数,则自动增量机制的行为未定义”

php - 使用 Zend TableGateway 的 select() 时无法检索 id 值

php - 无法使用ajax从json获取多个值

php - 如果声明不起作用

php - RewriteCond : if image exist then show it, 否则生成它

php - 无法运行具有代码覆盖率的 Codeception 测试

php - 将 PHP 和 Sql 与 Python 混合使用