日期:2014-05-16  浏览次数:20387 次

如何将参数传递给$.post的回调函数中?
jquery中的$.post的原型是
$.post(url, data, callback)

这里的data是要post的参数,而callback就是post之后的回调函数

callback有两个参数,一个是服务器响应的data,另外一个参数是执行结果,成功或者失败。

我有一个需求,如下:


{
  var usetopost
   
  $.post getA{
  usetopost = A;
  }

  $.post B(usetopost){
  提交usetopost的值
  }
}

这里存在一个问题,就是执行了post getA后,回调函数还没执行,所以usetopost还没有赋值,下面的post B就执行了。

我如何能使post getA的回调函数执行后再执行post B?

我用了下面这个方法
  var B

  $.post getA{
  usetopost = A;
  这里还需要使用到B,但是测试的时候,发现这个B是post getA里的局部变量,并不是前面定义的B
  $.post B(usetopost){
  提交usetopost的值
  }
  }

  如果是使用上面这个办法,我的疑问就是如何将前面定义的B传递给post getA,因为$.post的回调函数中的参数只有服务器返回的参数和失败或者成功的标记,所以这个方法就是行不通的。






------解决方案--------------------
用.ajax()方法,执行模式设置为同步模式:
JScript code
$.ajax({
    type: 'POST',
    url: 'url',
    data: 'data',
    async: false,
    success: callback
    ...
});

------解决方案--------------------
$.get和$.post都是异步方式的执行。这个在任何一本Jq教程上都会讲到,所以还是用ajax原型
$.ajax,里面的async:false,这样就是同步执行了。。
------解决方案--------------------
$.post("1.php", function(usetopost){
$.post("2.php?xx="+usetopost, function(date){
//......
});
});
//这样必须返回1.php值后才运行2.php