Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 学习getjson_Php_Jquery - Fatal编程技术网

Php 学习getjson

Php 学习getjson,php,jquery,Php,Jquery,我试图掌握如何使用PHP中的数组使用$.getJSON 这里有一个简单的例子,我想做的就是输出请求的信息。警报(数据)是否应返回数组对象?我没有提醒任何事 PHP文件(account.PHP): HTML文件: $("#unsubscribe").click(function() { $.getJSON("account.php?", function(data) { alert(data); }); }); 首先,如果您尝试在浏览器中加载accou

我试图掌握如何使用PHP中的数组使用
$.getJSON

这里有一个简单的例子,我想做的就是输出请求的信息。
警报(数据)
是否应返回数组对象?我没有提醒任何事

PHP文件(account.PHP):

HTML文件:

$("#unsubscribe").click(function() {
    $.getJSON("account.php?", function(data) { 
        alert(data);    
    });
}); 

首先,如果您尝试在浏览器中加载
account.php
,这可能是一个好主意。你应该看到:

{"items":5,"others":6}
然而,你不会看到这一点。相反,您将看到一个分析错误,应该是
。因为您在
echo
行中忘记了它


这就是为什么您不会看到任何
警报
。PHP错误显然不是有效的JSON,查看浏览器的错误控制台会告诉您这一点;)

在我的项目中,我使用dump函数查看json返回的数组。 这是:

function dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;

//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects 
    for(var item in arr) {
        var value = arr[item];

        if(typeof(value) == 'object') { //If it is an array,
            dumped_text += level_padding + "'" + item + "'"+"\\n";
            if (level < 0)
                dumped_text += dump(value,level+1);
        } else {
            dumped_text += level_padding + "'" + item + "' => '" + value + "'"+"\\n";
        }
    }
} else { //Stings/Chars/Numbers etc.
    dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}
功能转储(arr,级别){
var_text=“”;
如果(!level)level=0;
//在行首给出的填充。
var级别_=”;

对于(var j=0;jtry:php>$arr=array('items'=>5,'others'=>6);php>$arr=json_encode($arr);php>echo$arr;{“items”:5,“others”:6}使用$.post并返回一个值为json编码的var。然后对其进行迭代,就好像它是一个对象……
data.items,data.others
要添加到这一点,
警报(data)
将警报
[object]
试试
警报(data.items+''+data.others)
@Kolink和Mike,account.php上的数组正是我看到的。我根本没有收到警报,甚至[object],所以我很明显做了错事。@stevenpepe将Javascript更改为
$(document)。准备(function(){$(“#unsubscribe”)。单击(function(){alert('click fired');$)。getJSON(“account.php?”,函数(数据,状态,xhr){alert(状态);alert(xhr.status);alert(数据);});});})
并告诉我们您看到了什么。如果您根本看不到任何警报,问题在于您的单击处理程序。@DaveRandom,处理程序可以工作,我的警报和您的警报都没有成功输出。@stevenpepe请尝试使用长手
$.ajax
版本(显示等效内容)并提供一个
错误:
处理程序-
$。getJSON
仅允许您提供一个
成功:
处理程序。如果触发
错误:
,将更容易找到并修复问题,因此
$。getJSON
将工作。
function dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;

//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects 
    for(var item in arr) {
        var value = arr[item];

        if(typeof(value) == 'object') { //If it is an array,
            dumped_text += level_padding + "'" + item + "'"+"\\n";
            if (level < 0)
                dumped_text += dump(value,level+1);
        } else {
            dumped_text += level_padding + "'" + item + "' => '" + value + "'"+"\\n";
        }
    }
} else { //Stings/Chars/Numbers etc.
    dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}