如何将数据从post返回到变量jquery

时间:2012-02-17 00:34:51

标签: jquery post

我有这段代码:

function nameToCode(nameGroup) {

    $.post("execute.php", { something: sendSomething }, function(data) {

       return data;

    });

}

variable = nameToCode("some text");

但我唯一得到的变量是未定义的,任何想法?感谢。

3 个答案:

答案 0 :(得分:4)

结果将无法立即生效,因此您必须以不同的方式构建代码:

function nameToCode(nameGroup, callback) {
    $.post("execute.php", { something: sendSomething }, function(data) {
            callback(data);
    });
}

nameToCode("some text", function(variable)
{
    /* use variable here */
});

答案 1 :(得分:1)

$.post的第四个参数是dataType。 您可以将其设置为JSON,以便将返回数据解析为JavaScript对象或数组。

$.post(
   "execute.php", 
   { something: sendSomething },
   function(data){ return data; },
   'json');

在execute.php文件中,您可以执行类似

的操作
<?php
$return_data=array('nameToCode'=>'some text');

header('Content-Type: application/json');
echo json_encode($return_data);
exit();

答案 2 :(得分:-1)

你不能得到这样的回调。存在异常问题。 您可以使用.ajax而不是.post;

function nameToCode(nameGroup, callback) {
    $.ajax({
    url: 'execute.php',
    type: 'POST',
    aysnc:false,
    data: 'something=sendSomething',
    success: function(data) {
        return data;
    }
});

这将有效。

你的意思是,它不起作用或你不喜欢这个解决方案?

这是关于javascript工作流程。 js不等待任何同步操作。你可以在成功功能块中完成你的工作,或者你必须使用async:false参数。我建议在成功功能块中做任何你想做的事情。如果您使用aysnc:false,它会在短时间内阻止您的浏览器。