2012-05-28 61 views
0

我有一个阿贾克斯问题给你所有。
我想从PHP中的ajax调用返回一个数组,然后从该数组中获取值,我返回与jQuery ajax调用一起使用,但我不知道如何执行此操作。任何人都可以指引我正确的方向进行教程吗?AJAX PHP多个响应

我知道有一堆的Ajax响应不同的编码类型(json和xml想到),但我真的不知道有什么用。现在我所做的只是回应我在页面上显示的某些内容,但我想将当前的实现更改为使用数组作为响应,而不仅仅是简单的文本。虽然我不知道从哪里开始看关于如何做到这一点的教程。

此外,使用编码类型的要点是什么?如果我只能回显我的文本并获得我想要的内容?我想我真的没有看到json类型或xml的重点,如果我只能回显显示。

回答

0

如果你要返回数组,我认为JSON是最好的方法。

它确实很容易做到。

PHP:

$array=array();//this is my array 

$array=json_encode($array);//encode the array to JSON format, so that jQuery can decode it. 

echo $array;//print it on screen 

现在使用的一些jQuery的:编码的数组

$.getJSON('http://mysite.com/myphpscript.php', function(my_data){ 

//now, my_data is your array.. 

//so access it like this: 

alert(my_data.keyname);//"keyname" is an array key of your array 

});//end of ajax request 

是让jQuery的可以把它捡起来作为阵列(JSON的帮助),而不仅仅是标准文本。

+0

hmm。我试过使用这个,但每次我做一个警报(data.keyname)它是未定义的?当我进入chromes xhr调试器时,尽管它显示响应正在发送整个数组,但我认为我只是无法从中获取文本?我应该解码数据还是什么? – noname

+0

哈我的坏,忽略其他帖子。我不得不使用jquery解码json数组。decodeJSON,然后使用data.keyname格式进行访问。好东西虽然谢谢你的帮助! – noname

1

那么,开始编码类型是专门解决一个问题,如你所提出的。他们可以在响应中组织多个信息位,因此您可以从数据库中返回数组,列表或多行等。

Json是我个人最喜欢的,因为它的语法有多轻。为了将数组从PHP传递到带有AJAX的JavaScript,首先需要将数组编码为json(基本上采用PHP数组对象,并对其进行文本表示)。您可以使用PHP的json_encode()函数(PHP.NET reference)执行此操作。

接下来,您需要以某种方式获取,我会在这里推荐Jquery,因为它们内置了函数。使用jQuery,您可以键入类似:

$.ajax({ 
    url: "ajax.php", 
    data: {"somedata":"somedata"}, 
    success: function (data) 
    { 
    alert(data); 
    }, 
    dataType: "json" /*now jquery will parse the json for you*/ 
}); 

在这段代码,当阿贾克斯返回的信息中获得成功的匿名函数将被调用。因为jquery很棒,所以它已经解析了json,并将其放入对象数据中。现在您可以通过data.[ArrayKey]访问您通过php传递的每个数组项目。

而且,你问了一个教程,这里是一个,这似乎是相当不错的:http://www.jquery4u.com/json/ajaxjquery-getjson-simple/#.T8PGz9VYua8

希望帮助解释这一点更好,我可以给你举个例子,如果你喜欢。