开发者

Reusing 'data' passed in the jquery-ajax call

I'm using jquery's .ajax() method on a button click.

I wanted to know if there a way in whcih I can use the data that I passed in the data-part of the AJAX call in my success() function.

This is my code,

$.ajax({
  url: //my URL here..
  type: 'POST',
  data:{
    projDets : projDetailsArray,
  },
  datatype:'html',
  error: function(){
    alert('Error loading Project Information');    开发者_运维问答 
  },
  success: function(html){
    //I wanted to re-use 'projDets' that I'm passing in the 
    //'data' part of my code..                  
  }
});

Any help will be appreciated.

Thanks


You could wrap the $.ajax parameter in a closure, set up the "data" value as a local variable, and then reference it both for the "data" value and inside the "success" function:

$.ajax(function() {
  var data = {
    projDets: projDetailArray
    // ...
  };
  return {
    url: // your URL here..
    type: 'POST',
    data: data,
    datatype:'html',
    error: function(){
      alert('Error loading Project Information');     
    },
    success: function(html){
      // just reference "data" here!          
    }
  };
}());


Pritish - a quick and dirty way would be to store the json array in a jquery .data() object and then retrieve it as required.

1st, set the data: element to a named array:

// set 'outside' of the $ajax call
var projDetailsData = {projDets : projDetailsArray};
// now store it in a div data object
$("#targetDiv").data("myparams", projDetailsData);

// the data part of the $ajax call
data: projDetailsData,

to retrieve it again:

// get the value stored and call the $ajax method again with it
var projDetailsDataCopy = $("#targetDiv").data("myparams");

worth a try maybe!!

jim

[edit] - also, you could of course store the array in a module level vaiable -yuk!! :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜