在AJAX到PHP请求之后,是否可以将变量从PHP发送回AJAX?

时间:2011-12-22 20:27:57

标签: php ajax

我有一个AJAX请求,可以从PHP中的SQL数据库中获取一些信息。

问题是,我需要将其发送回变量中的AJAX。不要只是在屏幕上回应它。

这可能吗?如果是这样,我将如何做这样的事情?

感谢。

4 个答案:

答案 0 :(得分:0)

您可以随时返回以下内容:

echo "code you need to send back to AJAX &&& response text"

然后你可以用text.split(“&&&”)将它细分为2个变量。

答案 1 :(得分:0)

是的,您可以json_encode要发送回客户端的变量。

echo json_encode( array('variable' => 'your value' ) ); 

客户端将在请求完成时通过回调接收数据。如果没有更多关于我可以提供的细节的更多说明,我可以提供一些代码示例,具体取决于您是使用JavaScript库(如jQuery)还是执行原始XHR请求。

编辑:所以在jquery中检索上面的变量,你会做以下事情。

$.getJSON('yourfile.php', function(data){
      console.log( data.variable ); 
}); 

答案 2 :(得分:0)

如果我理解你的话,你会想要构建一个php数组并使用json_encode将数组转储为你的响应。然后在JS中,您可以使用重新排列的JSON文本来形成对象。

<强> ajaxpage.php

$resultArray = buildArrayOfItems('Select * from products order by price');
//I usually have my sql records returned directly as an array.
//that's all buildArrayOfItems does

die(json_encode($resultArray));

PHP应该产生类似这样的东西

<强>结果

{[
    {
      "id" : "2643",
      "name" : "Leather Jacket",
      "price" : "249.99"
    },
    {
      "id" : "2645",
      "name" : "Suede Jacket",
      "price" : "289.99"
    },
    ...
]}

你的JS看起来像这样(如果你正在使用jQuery)

<强> JS

$.getJSON('ajaxPage.php', {'someVariable':'someValue'}, function(obj){
    console.log(obj.count); //will show number of resulting items
    console.log(obj[0].id); //will show id of first item (2643)
});
//If you do not use jQuery, you'll need to use eval() or something evil like that
//to convert the string to an object

答案 3 :(得分:0)

这个网站有一个很好的例子,说明你想要实现的目标。 http://ditio.net/2008/07/17/php-json-and-javascript-usage/

简而言之,你需要使用php的json_encode()将数组转换为json兼容字符串,并将每个字符串转换回客户端。

如果您正在使用jQuery,那么您需要$ .ajax()的dataType属性为“json”,从那里您可以直接与响应作为json对象进行交互。

如果您使用的是标准XmlHttp。

var json = JSON.parse(xmlHttp.responseText);