Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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
AJAX PHP多响应_Php_Jquery_Ajax_Json - Fatal编程技术网

AJAX PHP多响应

AJAX PHP多响应,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我有一个ajax问题要问大家。 我想从php中的ajax调用返回一个数组,然后从该数组中获取返回的值,以便与jquery ajax调用一起使用,但我不知道如何做到这一点。有人能给我指出一个正确的指导方向吗 我知道ajax响应有很多不同的编码类型(我想到的是json和xml),但我不知道它们有什么用途。现在我所做的就是回显我的响应,以在我的页面上显示一些内容,但是我想更改我当前的实现,使用数组作为响应,而不仅仅是简单的文本。虽然我不知道从哪里开始看关于如何做到这一点的教程 另外,如果我可以直接回显

我有一个ajax问题要问大家。
我想从php中的ajax调用返回一个数组,然后从该数组中获取返回的值,以便与jquery ajax调用一起使用,但我不知道如何做到这一点。有人能给我指出一个正确的指导方向吗

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


另外,如果我可以直接回显文本并获取所需内容,那么使用编码类型的意义何在?我想我真的看不出json类型或xml的意义,如果我可以只是为了显示而回显的话。

好吧,开始编码类型是为了解决您提出的问题。它们用于在响应中组织多个信息位,因此您可以返回数组、列表或数据库中的多行等

Json是我个人的最爱,因为它在语法上非常简单。要使用AJAX将数组从PHP传递到javascript,首先将数组编码为json(基本上是获取PHP数组对象,并对其进行文本表示)。您可以使用PHP的
json\u encode()
函数()实现这一点

接下来您将需要以某种方式获取它,我将在这里推荐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返回信息时,将调用success中的匿名函数。因为Jquery很棒,它已经解析了json,并将其放入对象数据中。现在,您从php传递的每个数组项都可以通过
数据访问。[ArrayKey]

此外,您还要求提供一个教程,这里有一个似乎很好:


希望这有助于更好地解释它,如果你愿意,我可以给你举个例子。

好吧,首先,编码类型是专门用来解决你提出的问题的。它们用于在响应中组织多个信息位,因此您可以返回数组、列表或数据库中的多行等

Json是我个人的最爱,因为它在语法上非常简单。要使用AJAX将数组从PHP传递到javascript,首先将数组编码为json(基本上是获取PHP数组对象,并对其进行文本表示)。您可以使用PHP的
json\u encode()
函数()实现这一点

接下来您将需要以某种方式获取它,我将在这里推荐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返回信息时,将调用success中的匿名函数。因为Jquery很棒,它已经解析了json,并将其放入对象数据中。现在,您从php传递的每个数组项都可以通过
数据访问。[ArrayKey]

此外,您还要求提供一个教程,这里有一个似乎很好:


希望这有助于更好地解释它,如果你愿意,我可以给你一个例子。

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

这其实很容易做到

PHP:

现在使用一些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的帮助下)而不仅仅是标准文本进行提取。

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

这其实很容易做到

PHP:

现在使用一些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的帮助下)提取,而不仅仅是标准文本。

hmm。我尝试过使用它,但每次我发出警报(data.keyname)时,它都没有定义?当我进入chromes xhr调试器时,虽然它显示响应正在发送整个数组,但我想我只是无法从中获取文本?我应该解码数据还是什么?哈,我的错,忽略其他帖子。我必须使用jquery.decodeJSON对json数组进行解码,然后使用data.keyname格式进行访问。好东西,谢谢你的帮助!嗯,我试着用这个,但每次我做一个警报(data.keyname),它是未定义的?当我进入chromes xhr调试器时,虽然它显示响应正在发送整个数组,但我想我只是无法从中获取文本?我应该解码数据还是什么?哈,我的错,忽略其他帖子。我必须使用jquery.decodeJSON对json数组进行解码,然后使用data.keyname格式进行访问。好东西,谢谢你的帮助!