Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从html页面中的另一个url访问json数据_Php_Jquery_Json - Fatal编程技术网

Php 如何从html页面中的另一个url访问json数据

Php 如何从html页面中的另一个url访问json数据,php,jquery,json,Php,Jquery,Json,下面是我返回json数据类型的php代码 $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)) { $

下面是我返回json数据类型的php代码

$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中访问这些数据,也就是说,我想要特定位置的特定数据,例如,我想要在我的div中显示'fn',在另一个具有另一个id的div中显示'ln'

在尝试其他东西之前,我试过这个

$.ajaxSetup({ 
  url: 'exm1.php', 
  type: 'get', 
  dataType: 'json',
  success: function(data){
    console.log(data);          
  }
});

但它显示数据未定义,我不知道我做错了什么

使用
$.ajax
而不是
$.ajaxSetup
函数

下面是另一篇SO帖子的详细答案


$.ajax({
//要调用的文件名
url:“fetch_latlon.php”,
//方法用于调用服务器端代码,可以是GET或POST
键入:“获取”
//可选-要传递到服务器端代码的参数
数据:{
键1:‘值1’,
键2:‘值2’,
键3:“值3”
},
//从服务器端代码返回响应类型
数据类型:“json”
//当AJAX调用成功时执行
成功:功能(数据){
//取lat/lon
var lat=data.lat;
var lon=data.lon;
//在HTML中显示lat/lon
$('lat')。文本(lat);
$('lon')。文本(lon);
},
//当AJAX调用失败时执行
错误:函数(){
//TODO:在此处执行错误处理
log('获取lat/lon时发生错误');
}
});
如果您将
$.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(如
等)输出任何其他数据


在JavaScript中,通过使用

$.getJSON('exm1.php', function(data) {
  console.info(data);
}).fail(function(jqXHR, textStatus, errorThrown) {
  console.error(jqXHR, textStatus, errorThrown);
});

$.ajaxSetup
交换为
$.ajax
。此外,您的
rJSONData
函数不会返回任何内容。我将
echo json\u encode($strJSON)
更改为
return json\u encode($strJSON)
尝试使用
$.ajax
函数代替
$.ajaxSetup
。请看这篇文章@SahilVerma抱歉,我在评论中添加了更多内容above@Phil我试过了,但仍然不起作用,我认为这不是问题所在,因为php文件无论如何都返回json数据。在我的例子中,它显示在获取lat/lon时发生了错误。这个错误是因为我复制了console.log行。您是否更改了代码的适当部分以匹配您的代码,如
url
数据
?是的,我复制了错误语句,实际上我只是复制了错误语句,以确保它是否给出了错误,或者在浏览器中访问您的
PHP
文件,如果该文件正常工作并回显您的
JSON
?标记了我的错误对于其他类似问题的指导,回答正确。给出解析错误parsererror“SyntaxError:Unexpected token<在JSON中的位置0在JSON.parse()在m.parseJSON(jquery.min.js:4)在Pc(jquery.min.js:4)在x(jquery.min.js:4)在XMLHttpRequest.b(jquery.min.js:4)(匿名)@exm.php:35 j@jquery.min.js:2 fireWith@jquery.min.js:2 x@jquery.min.js:4 b@jquery.min.js:4我也无法使用您的rJSONData函数,因为它在sJSON=[]上给出了错误;行,所以我使用了我的rJSONData函数上一个有效的函数,我发现错误出现在我的php中,我在开始时使用的是@SahilVerma,如果它不支持数组文本,听起来你使用的是非常旧的php版本。我已经更新了我的答案,使用了旧的语法。事实上,我对所有这些JSON Ajax php内容都是新手,所以不要我真的不知道新的和旧的东西
$.getJSON('exm1.php', function(data) {
  console.info(data);
}).fail(function(jqXHR, textStatus, errorThrown) {
  console.error(jqXHR, textStatus, errorThrown);
});