在jQuery UI AJAX加载的Tabs上传递变量

时间:2011-09-20 21:56:01

标签: jquery jquery-ui jquery-ui-tabs

我在使用PHP和jQuery构建的在线应用程序上遇到了一个独特的UI问题。该页面由jQuery UI选项卡组成,它通过ajax方法加载数据。从呈现选项卡的index.php开始,允许用户打开jQuery UI对话框模式窗口以选择用户。在选择用户(通过其名称旁边的链接)时,函数应关闭对话框窗口,选择选项卡索引#1,并为加载的页面创建一个变量,以允许我运行将填充用户数据的查询在那页。

一切运作良好,但最后一部分......我无法在页面上找到一个变量来挽救我的生命。

首先,设置:

<ul>
<li><a href="dashboard.php">Dashboard</a></li>
<li><a href="currentcall.php">Current Call</a></li>
<li><a href="managequeue.php">Manage Queue</a></li>
<li><a href="admin.php">Admin</a></li>
</ul>

<script type="text/javascript">
    var curtab = $('#tabs').tabs();

    function chooseSearchProspect(prospect_id, allow_open) { 
       $('#prospect_search_modal').dialog('close');
       $("#tabs").tabs({
      disabled: [],
      selected: 1,
       });
    }
</script>

我尝试了几种不同的方法,包括通过“Ajax选项”字段as described here传递ajax参数,这似乎是理想的解决方案,但无论我做什么,似乎我都无法获得$ _REQUEST参数通过currentcall.php。我不能只通过函数中的$('#id').val()在currentcall.php中设置一个隐藏变量,因为由tabs打开的页面尚未加载到DOM中。我不知道从哪里开始!

1 个答案:

答案 0 :(得分:4)

ajaxOption解决方案中,您需要使用一个函数,以便每次进行ajax调用时都会重新评估它。

使用

<script type="text/javascript">

    var variable_to_pass = 0; // your global variable;
    function getVariable(){return variable_to_pass;}

    var curtab = $('#tabs').tabs({
                       ajaxOptions: { data: { variable_used_in_php: getVariable } }
                 });

    function chooseSearchProspect(prospect_id, allow_open) { 
       $('#prospect_search_modal').dialog('close');
       variable_to_pass = 1;// set it to whatever you want to pass to the ajax call..
       $("#tabs").tabs({
         disabled: [],
         selected: 1
       });
    }
</script>