предварительно загрузить поисковый запрос для ссылки из таблицы и передать его в ajax - PullRequest
0 голосов
/ 21 августа 2011

Итак, у меня в настоящее время есть таблица, сгенерированная файлами ajax и json.Таблица состоит из 3 сегментов, имени, идентификатора, а третий столбец является ссылкой для получения дополнительной информации о каждом результате.

Пример того, как выглядит моя таблица

PATO:0001243    light blue    Details
PATO:0001246    light brown   Details
PATO:0001247    light cyan    Details

текущий код Iнеобходимо сгенерировать таблицу:

    $.each(data.matches, function(i, item){
    var this_row_id = 'result_row_' + next_row_num++;
    $('<tr/>', {"id":this_row_id}).appendTo('tbody');
    $('<td/>', {"text":item.label}).appendTo('#'+this_row_id);
    $('<td/>', {"text":item.value}).appendTo('#'+this_row_id);
    $('<a href="./test.cgi">'+ 'Details' +'</a>').appendTo('#'+this_row_id);
});

В идеале, я хотел бы иметь возможность нажать на «Детали», и он передал бы значение идентификатора другому вызову ajax, а затем создал бы диалог / модальный дляотобразить результаты этого вызова AJAX.

EXAMPLE

В приведенном выше списке, нажав «Подробности» в первой записи, вы передадите значения «PATO: 0001234» в мой скрипт «test.cgi», который будет использовать это значение для обработки и возвратаJSON для меня, чтобы отобразить в диалоге.

Я не прошу, чтобы кто-то написал мой код для меня, просто несколько указаний о том, как к этому подойти.

Я думаю, что я, вероятно, неправильно ссылаюсь на мой скрипт cgi из<a href>.Но я не знаю, как связать это с ajax-вызовом из текстовой ссылки.

Ответы [ 2 ]

1 голос
/ 21 августа 2011

Обновление
Слишком длинная левая страница загружена;@floatless опубликовал более понятный подход с цепочкой, не думая об этом.


Вы можете изменить последние несколько строк на что-то вроде того, что ниже.Идея состоит в том, чтобы прикрепить обработчик к каждой ссылке при ее создании, который вызовет функцию loadDetail с соответствующей меткой элемента.В loadDetail это просто сделать запрос ajax с меткой в ​​качестве параметра.

Обратите внимание, что вам не нужно использовать ./test.cgi - test.cgi будет достаточно.

...
    $('<a href="#" id="detail_' + this_row_id +'">'+ 'Details' +'</a>').appendTo('#'+this_row_id);

    $('#detail_' + this_row_id).click(loadDetail(item.label));
}


function loadDetail(label){
    $.get('test.cgi', {label: label}, function(data){
        //create your dialog to display the response data
    });
}
1 голос
/ 21 августа 2011

Вы можете добавить обработчик события щелчка при создании таблицы:

 $('<a href="./test.cgi">'+ 'Details' +'</a>').appendTo('#'+this_row_id).click(function()
 {
      $.getJSON("./test.cgi", {label: item.label}, function(data) 
      { 
          //Do something with received data
      });

      return false;
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...