Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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
Php 获取关于成功的ajax post数据_Php_Javascript_Jquery_Ajax_Post - Fatal编程技术网

Php 获取关于成功的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

我有以下ajax调用。我想做的是在ajax请求期间设置变量“lan_setting”,并能够在成功时使用该变量

实际上,我想将该变量设置为post数据,这将根据表单输入的不同而有所不同,但到目前为止,我甚至无法仅使用这个基本示例。它只返回“undefined”

如何在成功时使用通过ajax发送的post变量


谢谢

嗯,如果你在发帖,你应该使用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); 
    }
});