从ajax数据创建变量

时间:2014-10-14 18:02:27

标签: jquery ajax variables

我想从ajax调用(对象)创建一个变量。电话看起来像这样:

        // Get scheduled resource, id
        $('#loading').show();
        var resource_id = $.ajax({
            url: campaign_planning_base_url() + '/get_schedule_resource_id',
            data: {
                event_id: event_id
            },
            type: "POST",
            dataType: 'json',
            success: function(data) {
                var resource_id = data[order].resource_id;
                return resource_id;
            }
        }).done(function() {
            $('#loading').hide();
        });

我收到的数据如下:

[{"resource_id":"36"}]

我喜欢在此调用之外使用resource_id的值(36)。但是当我提醒值

alert (resource_id);

我收到[object Object]。我如何获得36的价值?有人有想法吗?

2 个答案:

答案 0 :(得分:0)

由于AJAX是异步的,因此您无法将resource_id返回给任何外部。您可以在success()函数中调用外部函数。

     // Outer function
      function callOuterFunction(resource_id) {
         alert(resource_id);
      }

      $('#loading').show();
        var resource_id = $.ajax({
            url: campaign_planning_base_url() + '/get_schedule_resource_id',
            data: {
                event_id: event_id
            },
            type: "POST",
            dataType: 'json',
            success: function(data) {
                var resource_id = data[0].resource_id; // should be use 0 instead of `order`
                callOuterFunction(resource_id); 
            }
        }).done(function() {
            $('#loading').hide();
        });

答案 1 :(得分:0)

data[0].resource_id将返回36并在成功块中写回调函数以使用此值是更好的选择