jQuery Ajax:我可以在成功时存储多个“变量”吗?

时间:2010-09-02 18:07:39

标签: php javascript jquery ajax

基本上只是:

 success: function(msg){
alert(msg);
}

什么出现警报。但是,如果我在ajax调用的文件中有一个var,那么对我来说是否可能:

$filename = time() . "10";

成功使用?

所以我能做到

 success: function(msg){
alert($filename);
}

(现在不正确)但我该怎么做?

    $.ajax({
           type: "POST",
           url:"functions.php?action=crop",
           data: {x: $('#x').val(),y: $('#y').val(),w: $('#w').val(),h: $('#h').val(),fname:$('#fname').val(),fixed:fixed,size:size},
           success: function(msg){
               if(!fixed)
                    $("#crop_preview").css({overflow:"auto"})
               $("#crop_preview").html($(document.createElement("img")).attr("src", msg.filename)).show();
           $("#crop_preview").after("Here is your Cropped Image :)").show();
           $("#image").slideUp();
           }
         });

和php:

    $time = time().".jpg";
    echo '(';
echo json_encode(array(
    'filename'=>$time
));
echo ')';

1 个答案:

答案 0 :(得分:5)

使用PHP json_encode将完整对象返回给客户端:

echo '(';
echo json_encode(array(
    'filename'=>'anything',
    'var2'=>'something',
));
echo ')';

并使用jquery的getJSON代替普通的get,或者提出post / json请求:

$.ajax({
    type: "POST",
    dataType: 'json',
    url:"functions.php?action=crop",
    success: function(response){
        alert(response.filename);
        alert(response.var2);
    }
.....