在上传期间将变量从PHP传递到jQuery

时间:2012-01-17 08:44:15

标签: php jquery ajax

我正在使用此代码直接在页面上自动运行我的文件上传脚本: http://pastebin.com/ZQFzk1LD

我正在使用这个ajax库:http://pastebin.com/s2YmJ3BD

问题是,一切正常,但是当我通过php代码上传时重命名文件名,我需要显示它,它只显示原始文件名。因此,假设PHP中的重命名变量被称为:$ rename - 现在我需要以某种方式将此传递给此ajax请求以在整个ajax请求中获取正确的返回文件。我有一些想法,但感觉我早上太累了。

我感谢所有帮助! :)祝你有愉快的一天

1 个答案:

答案 0 :(得分:0)

你有这个事件处理程序:

...
onComplete: function(file, response){}
...

response这是你在PHP中echo $rename;的东西。我建议你用json_encode(array('rename' => $rename));将答案包装到JSON中然后在你的事件处理函数中使用response,然后再使用转换回json,只需从服务器检索到的纯文本通过这样的代码:

function toJSON(data){
    try {
        data = JSON.parse(data);
    } catch (err) {
        data = { 'code' : -999, 'message' : 'Error while processing response' };
    }

    if (typeof data.debug != 'undefined') {
        console.log(data.debug);
    }

    return data;
}
response = toJSON(response);

您可以在response.rename处理程序的任何位置onCompete()访问新名称。

同样,函数toJSON(data)会将您输入json_encode(array('debug' => 'this will be logged in console'));的任何内容输出到控制台中,这非常有用。