我在 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/