我为你们所有人提出了一个问题 我想从php中的ajax调用返回一个数组,然后从我返回的数组中获取值以用于jquery ajax调用,但我不知道如何执行此操作。有人能指出我正确的教学方向吗?
我知道ajax响应有很多不同的编码类型(想到json和xml)但我真的不知道它有什么用处。现在,我所做的就是回应我所拥有的作为响应,以便在我的页面上显示一些内容,但我想更改当前的实现以使用数组作为响应而不仅仅是简单的文本。虽然我不知道从哪里开始查看有关如何执行此操作的教程。
另外,如果我可以回显我的文本并获得我想要的内容,那么使用编码类型有什么意义呢?我想我真的没有看到json类型或xml的点,如果我只能回显显示。
答案 0 :(得分:1)
嗯,开始编码类型是专门解决问题,如你提出的问题。它们用于在响应中组织多个信息位,因此您可以从数据库中返回数组,列表或多个行等。
Json是我个人的最爱,因为它在语法上有多么轻松。要使用AJAX将数组从PHP传递到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*/
});
在此代码中,当Ajax返回信息时,将调用成功中的匿名函数。因为Jquery很棒,所以它已经解析了json,并把它放在了对象数据中。现在,您从php传递的每个数组项都可以通过data.[ArrayKey]
访问。
另外,你曾要求提供一个教程,这里似乎是一个非常好的教程:http://www.jquery4u.com/json/ajaxjquery-getjson-simple/#.T8PGz9VYua8
希望有助于解释它,如果你愿意,我可以给你一个例子。
答案 1 :(得分: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
对数组进行编码的 point 是这样的,jQuery可以将它作为一个数组(在JSON的帮助下),而不仅仅是标准文本。