2009-10-08 3 views
5

Как передать строку запроса (? id = avalue) с каждой из нижеуказанных ссылок, связанных с вкладками ниже. Я пытаюсь открыть внешний контент в вкладках (что он работает нормально), но я не смог передать параметр с URL-адресами. Значение для параметра будет одинаковым для каждой ссылки.jquery-ui-tabs. прохождение запроса

Мой код функционирование:

<script type="text/javascript"> 

     $(function() { 
      $("#tabs").tabs({spinner:'<b>Retrieving Data...</b>'}); 

     }); 

</script> 


<div id="tabs"> 
      <ul> 
      <li><a href="table.aspx"><span>Introduction</span></a></li> 
       <li><a href="RequestActionUpdate.aspx"><span>Update</span></a></li> 
       <li><a href="tabstesttarget.aspx"><span>Target</span></a></li> 
       <li><a href="table.aspx" ><span>View History</span></a></li> 
      </ul> 

     </div> 

Любая помощь вы можете предложить мне будет высоко ценится.

Заранее спасибо

ответ

1

Вы можете жёстко параметр для каждой ссылки:

<li><a href="RequestActionUpdate.aspx?id=avalue"><span>Update</span></a></li> 

Это должно работать нормально. Что именно не работает для вас? Или у вас есть что-то еще?

+0

Я забыл упомянуть, что параметр будет одинаковым для каждой вкладки, но будет изменяться для каждого сеанса. Я собираюсь взять его, возможно, в скрытую коробку. – 2009-10-08 14:56:08

1

Из поиска, что я сделал, лучший способ приблизиться к этому без необходимости делать что-то уродливое, как:

window.location = href + '?id=avalue' 

будет обновлять анкерные hrefs на странице загрузки. Возьмите любой идентификатор/значение, которое вам нужно, и просто добавьте его;

$(document).ready(function(){ 
    value = "?id=foobar" 
    $("#tabs ul li a").attr('href', ($(this).attr('href') + value)); 
}); 

Не самое элегантное решение, но оно действительно работает.

1

Что произойдет, если вы добавите наблюдателя событий по всем ссылкам?

$("#tabs ul li a").click(
    function(){ 
     $(this).attr('href', $(this).attr('href') + $('#someHiddenInput').val()); 
    } 
); 
9

Вы можете использовать опцию ajaxOptions. Виджет вкладки будет передавать эти параметры на jQuery.ajax().

Следующий код использует data параметр функции jQuery.ajax() передать результат getId функции (код времени Unix-стиле, в данном примере) на сервер при выборе вкладки.
Запрос URL будет выглядеть примерно так RequestActionUpdate.aspx?id=1255015611701:

function getId() { 
    return (new Date()).getTime(); 
} 

$("#tabs").tabs({ 
    spinner:'<b>Retrieving Data...</b>', 
    ajaxOptions: { data: { id: getId } } 
}); 
+0

Блестящий. Это было решение, которое я пытался найти, но не мог понять, как это сделать. Определенно элегантное и эффективное решение. –

+0

Это сработало! Большое спасибо за это. – 2009-10-09 13:27:49

+0

Рад, что я мог бы помочь. Не забывайте отмечать ответ как принятый;) – brianpeiris