这是我的php代码,它将返回json数据类型
$sql="SELECT * FROM POST";
$result = mysqli_query($conn, $sql);
$sJSON = rJSONData($sql,$result);
echo $sJSON;
function rJSONData($sql,$result){
$sJSON=array();
while ($row = mysqli_fetch_assoc($result))
{
$sRow["id"]=$row["ID"];
$sRow["fn"]=$row["posts"];
$sRow["ln"]=$row["UsrNM"];
$strJSON[] = $sRow;
}
echo json_encode($strJSON);
}
此代码将返回
[{"id":"1","fn":"hi there","ln":"karan7303"},
{"id":"2","fn":"Shshhsev","ln":"karan7303"},
{"id":"3","fn":"karan is awesome","ln":"karan7303"},
{"id":"4","fn":"1","ln":"karan7303"},
{"id":"5","fn":"asdasdas","ln":"karan7303"}]
但是如何在html中访问这些数据,也就是说,我想要特定位置的特定数据,例如我想要显示' fn'在我的div和' ln'在另一个div与另一个id
在尝试任何其他事情之前我试过这个
$.ajaxSetup({
url: 'exm1.php',
type: 'get',
dataType: 'json',
success: function(data){
console.log(data);
}
});
但它显示数据未定义我不知道我做错了什么
答案 0 :(得分:0)
如果您将$.ajaxSetup
(这是一种全局配置方法)与$.ajax
交换,那么您应该种工作。但是,您可以做出一些重大改进。
例如,你的PHP围绕rJSONData
返回的值做了一些奇怪的事情。这是一些修复
function rJSONData($result) {
$sJSON = array();
while ($row = mysqli_fetch_assoc($result)) {
$sJSON[] = array(
'id' => $row['ID'],
'fn' => $row['posts'],
'ln' => $row['UsrNM']
);
}
return json_encode($sJSON);
}
当你打电话时
header('Content-type: application/json');
echo rJSONData($result);
exit;
另外,请确保您没有通过echo
/ print
或HTML输出任何其他数据,例如<html>
等
在JavaScript中,您可以使用
大大简化代码$.getJSON('exm1.php', function(data) {
console.info(data);
}).fail(function(jqXHR, textStatus, errorThrown) {
console.error(jqXHR, textStatus, errorThrown);
});
答案 1 :(得分:-1)
使用$.ajax
代替$.ajaxSetup
功能。
以下是另一篇SO帖子how to keep running php part of index.php automatically?
的详细答案<script>
$.ajax({
// name of file to call
url: 'fetch_latlon.php',
// method used to call server-side code, this could be GET or POST
type: 'GET'
// Optional - parameters to pass to server-side code
data: {
key1: 'value1',
key2: 'value2',
key3: 'value3'
},
// return type of response from server-side code
dataType: "json"
// executes when AJAX call succeeds
success: function(data) {
// fetch lat/lon
var lat = data.lat;
var lon = data.lon;
// show lat/lon in HTML
$('#lat').text(lat);
$('#lon').text(lon);
},
// executes when AJAX call fails
error: function() {
// TODO: do error handling here
console.log('An error has occurred while fetching lat/lon.');
}
});
</script>