Передача переменных на вкладки, загруженные в JQuery UI AJAX - PullRequest
2 голосов
/ 21 сентября 2011

У меня возникла уникальная проблема с пользовательским интерфейсом в онлайн-приложении, построенном на PHP и jQuery. Страница состоит из вкладок пользовательского интерфейса jQuery, которые загружают данные с помощью метода ajax. Начиная с index.php, где отображаются вкладки, пользователь может открыть модальное окно диалогового окна jQuery UI, чтобы выбрать пользователя. После выбора пользователя (по ссылке рядом с его именем) функция должна закрыть диалоговое окно, выбрать вкладку index # 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 через поле «Параметры Ajax» , как описано здесь , которое кажется идеальным решением, но независимо от того, что я делаю, кажется, я не могу получить параметр $ _REQUEST до currentcall.php. Я не могу просто установить скрытую переменную в currentcall.php через $('#id').val() в функции, потому что страница, которая будет открыта вкладками, еще не была загружена в DOM. Я в недоумении, куда идти отсюда!

1 Ответ

4 голосов
/ 21 сентября 2011

В решении ajaxOption необходимо использовать функцию, чтобы она каждый раз переоценивалась при каждом вызове ajax.

use

<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>
...