使用Jquery Tabs通过ajax传递变量

我有一个问题,我已经坚持了几天,我似乎无法弄明白。 我正在尝试使用Jquery Tabs通过AJAX传递变量。

这是我的使用场景:用户使用JQuery选项卡加载页面,默认只是一些文本。 在页面上,我有一个包含userid的会话变量。 当他们单击第二个选项卡时,它会将该userid变量传递给脚本。 我无法通过!

    var postData = {}; $("#tabs").tabs({ select: function(event, ui) { postData = { userid: parseInt($(ui.tab).data('userid')); }; }, ajaxOptions: { type: 'POST', data: postData, error: function(xhr, status, index, anchor) { $(anchor.hash).html("Couldn't load this tab. We'll try to fix this as soon as possible. " + "If this wouldn't be a demo."); } } });  

Text information goes here

我在IE和Firefox中尝试了一个测试代码,它似乎工作得很好。

的test.html

     jQuery UI Example Page       

Text information goes here

https://stackoverflow.com/questions/12649062/passing-variable-via-ajax-with-jquery-tabs/Department.html:

  This is my department page. 

我在前两行进行了更改(变量声明:修改了postData并添加了一个新变量来保存userid值)。 修改了分配给“选择”的function。 这似乎正在起作用,因为我能够通过ajaxOptions的“错误”function中的警报来validation用户ID。

希望这可以帮助。 如果没有,请告诉我。

更改您的选择function以设置ajaxOptions。

 select:function(event, ui) { $("#tabs").tabs("option", "ajaxOptions",{ type: 'POST', data: {userId:$(ui.tab).data('userid')}, error: function(xhr, status, index, anchor) { $(anchor.hash).html("Couldn't load this tab. We'll try to fix this as soon as possible. " + "If this wouldn't be a demo."); } }) }, 

最初定义ajaxOptions时,它会将此值用于任何后续请求。 但由于某种原因,它没有得到当前的价值。 我甚至尝试在select上更改userId,但无法修改它。 他们可能正在克隆价值,我不确定。 无论如何,如果你在请求之前设置ajaxOptions,它将发送你想要的。

对不起半个回答,但我不能放手。 关于这个问题+1。 我不得不做一些研究,弄清楚它为什么不起作用。

注意:您可能已经知道这一点,但您必须在服务器上运行才能进行POST。 POST到本地文件系统将生成错误。