使用 AJAX 从 PHP 文件中获取响应
Posted
技术标签:
【中文标题】使用 AJAX 从 PHP 文件中获取响应【英文标题】:Get response from PHP file using AJAX 【发布时间】:2013-02-01 19:56:04 【问题描述】:所以这是我的问题,我正在使用 AJAX (jQuery) 将表单发布到 process.php
,但页面实际上需要回显响应,例如 apple
或 plum
。我不确定如何从process.php
获取响应并将其存储为变量...
这是我目前的代码:
<script type="text/javascript">
function returnwasset()
alert('return sent');
$.ajax(
type: "POST",
url: "process.php",
data: somedata;
success function()
//echo what the server sent back...
);
</script>
我还需要在 json 中回显 process.php
中的响应吗?还是纯文本没问题?
对不起,如果这听起来像一个愚蠢的问题,这是我第一次在 Ajax 中做这样的事情。
PS:上面代码中的POST请求如何命名?
【问题讨论】:
不是一个愚蠢的问题。 【参考方案1】:<?php echo 'apple'; ?>
几乎可以满足您在服务器上的所有需求。
对于 JS 端,服务器端脚本的输出作为参数传递给成功处理函数,所以你有
success: function(data)
alert(data); // apple
【讨论】:
success function
成功后缺少:
。您可以通过打开浏览器的 JS/调试控制台轻松检查语法错误。
谢谢!我将把它标记为答案,非常感谢(抱歉我明显的错误,我是 AJAX 新手)嗯,我在哪里命名发布请求,以便服务器将其识别为 $_POST['blah']
?
@MarcB : 我可以获取我在 process.php 中的变量值吗??
我很惊讶发现“返回”只需要一个回声是多么困难。当我第一次尝试做 Ajax 时,我很难弄清楚这一点。但这很简单。许多教程跳过了这些重要信息,大概是因为他们认为这很明显,不需要说出来。
使用echo json_encode('apple');
而不是echo 'apple';
【参考方案2】:
好的做法是这样使用:
$.ajax(
type: "POST",
url: "/ajax/request.html",
data: action: 'test',
dataType:'JSON',
success: function(response)
console.log(response.blablabla);
// put on console what server sent back...
);
而php部分是:
<?php
if(isset($_POST['action']) && !empty($_POST['action']))
echo json_encode(array("blablabla"=>$variable));
?>
【讨论】:
我最同意这个答案。您还可以在响应中包含多个变量,例如array("blablabla"=>$variable, "success"=>true, "user_message"="hello")
,然后只需在 JavaScript 中使用它们,例如response.success
.【参考方案3】:
<script type="text/javascript">
function returnwasset()
alert('return sent');
$.ajax(
type: "POST",
url: "process.php",
data: somedata;
dataType:'text'; //or HTML, JSON, etc.
success: function(response)
alert(response);
//echo what the server sent back...
);
</script>
【讨论】:
感谢您的回答,我已经给了它一个赞成票,现在我只需要决定将谁标记为答案:) “能力越大,责任越大。” -本·帕克 抱歉,ethan,但由于 mark 先回答了它,我认为他值得我将其标记为答案,而且他后来指导我完成了。我还是给了你一个赞成票 :) 无论如何谢谢!【参考方案4】:在您的 PHP 文件中,当您回显数据时使用 json_encode (http://php.net/manual/en/function.json-encode.php)
例如
<?php
//plum or data...
$output = array("data","plum");
echo json_encode($output);
?>
在您的 javascript 代码中,当您的 ajax 完成时,json 编码的响应数据可以变成这样的 js 数组:
$.ajax(
type: "POST",
url: "process.php",
data: somedata;
success function(json_data)
var data_array = $.parseJSON(json_data);
//access your data like this:
var plum_or_whatever = data_array['output'];.
//continue from here...
);
【讨论】:
【参考方案5】:var data="your data";//ex data="id="+id;
$.ajax(
method : "POST",
url : "file name", //url: "demo.php"
data : "data",
success : function(result)
//set result to div or target
//ex $("#divid).html(result)
);
【讨论】:
如果你把“数据”当作一个字符串,那么实际的数据会怎么走?以上是关于使用 AJAX 从 PHP 文件中获取响应的主要内容,如果未能解决你的问题,请参考以下文章
XML(php中获取xml文件的方式/ajax获取xml格式的响应数据的方式)
PHP、AJAX、HTML、MySQL,单击按钮从数据库中获取信息