Php 获取关于成功的ajax post数据
我有以下ajax调用。我想做的是在ajax请求期间设置变量“lan_setting”,并能够在成功时使用该变量 实际上,我想将该变量设置为post数据,这将根据表单输入的不同而有所不同,但到目前为止,我甚至无法仅使用这个基本示例。它只返回“undefined” 如何在成功时使用通过ajax发送的post变量Php 获取关于成功的ajax post数据,php,javascript,jquery,ajax,post,Php,Javascript,Jquery,Ajax,Post,我有以下ajax调用。我想做的是在ajax请求期间设置变量“lan_setting”,并能够在成功时使用该变量 实际上,我想将该变量设置为post数据,这将根据表单输入的不同而有所不同,但到目前为止,我甚至无法仅使用这个基本示例。它只返回“undefined” 如何在成功时使用通过ajax发送的post变量 谢谢 嗯,如果你在发帖,你应该使用jquery 那么php: <?php // do stuff $response = new stdClass; $res
谢谢 嗯,如果你在发帖,你应该使用jquery 那么php:
<?php
// do stuff
$response = new stdClass;
$response->lan_setting = $_POST["lan_setting"];
print json_encode($response);
?>
jQuery.ajax中的success()方法接受3个参数。。第一个是来自请求的响应
success(data,textStatus,jqXHR)函数,数组A函数
如果请求成功,则调用。函数通过了三次
参数:从服务器返回的数据,根据
数据类型参数;描述状态的字符串;还有jqXHR
另外,在使用$.ajax时,可以传递一定数量的对象。看
就你的职位而言,你能够做到
$.post("service.php", {lan_setting: "en"}, function(response) { alert(response); }
这将把第二个参数,
{lan\u setting:“en”}
发布到该php服务,并回显它的响应。好吧,您正在声明成功
函数错误(来自:
成功(数据、文本状态、jqXHR)
换句话说,success
函数只获取数据
、文本状态
、jqXHR
,而不获取其他内容。你不能只接受你的POST变量——它只得到它得到的东西。您也不能仅通过在config
对象中指定POST变量来传入POST变量:您必须通过data
属性传入它。最后,.ajax()
默认为GET请求,因此必须明确指定要使用POST请求
我对你想做什么有点困惑;如果在进行AJAX调用之前知道lan\u设置的值
,为什么需要将其传递到success
函数中?只要使用它:
var lan_setting = 'en';
_jqXHR = $.ajax({
url: url,
type: "POST",
data: {
lan_setting: lan_setting
},
scriptCharset: "UTF-8",
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
success: function(lan_setting, data, textStatus, jqXHR) {
alert(lan_setting);
}
});
另一方面,如果您希望传入
lan\u设置
值,由服务器修改并传回,则必须在响应中以某种方式对其进行编码,可能需要使用JSON。rkstar,感谢您的回答。。。您所说的操作似乎非常合乎逻辑,但提醒“data.lan_setting”会给我“undefined”。。。有什么想法吗?对不起。我通常使用stdClass,但我认为哈希也可以。错。:)测试了这个。它起作用了。
$.post("service.php", {lan_setting: "en"}, function(response) { alert(response); }
var lan_setting = 'en';
_jqXHR = $.ajax({
url: url,
type: "POST",
data: {
lan_setting: lan_setting
},
scriptCharset: "UTF-8",
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
success: function(lan_setting, data, textStatus, jqXHR) {
alert(lan_setting);
}
});