2013-12-16 2 views
0

Окружающая среда:
* JQuery-2.0.0.js
* jqSuitePHP_4_4_4_0JQuery и jqGrid - For ... Каждый цикл для извлечения данных

У меня есть сетка заполняется данными; для каждой строки в сетке я хотел бы извлечь только два столбца, те же самые два столбца для каждой строки. Мне не нужен идентификатор jgGrid строки, поскольку у меня есть свой собственный, который является одним из двух полей, которые мне нужны. Второе поле, которое я хочу, содержит меню выбора - мне нужно значение в отличие от текста поля.

В моих экспериментах лучшее, что я мог придумать, заключалось в том, чтобы захватить все строки и JSON, кодирующие их для отправки.

jQuery('#myGrid').jqGrid().jqGrid 
(
    'navButtonAdd', '#myPager', 
    { 
     ... 

     onClickButton: function() 
     { 
      var grid = $('#myGrid'); 
      var data = JSON.stringify(grid.jqGrid('getGridParam', 'data')); 

      request = $.ajax({ 
       url: 'process.php', 
       type: 'post', 
       data: data 
      }); 
     } 
    } 
); 

Проблема в том, что я не хочу этого делать. Поэтому я застрял в том, как ... для создания моего значения данных, которое можно увидеть в примере кода в AJAX POST. Я хочу, чтобы POST как 1 = это & 2 = то, где целые числа - это мои идентификаторы строк (первое поле, которое я хочу захватить), а «это» и «это» - значения выбранных меню (второе поле, которое я хочу), и покончить с JSON.

Благодарим за помощь.

=== РЕДАКТИРОВАТЬ ===
* Добавление образца сетки
* Подчеркивая часть кода, который бросает вызов мне

+---------------------------------------------+ 
| Column 1 | * Column 2 | Column 3 | Column 4 | 
|----------|------------|----------|----------| 
| 1  | This  | Other | Stuff | 
|----------|------------|----------|----------| 
| 2  | That  | More  | Stuff | 
+---------------------------------------------+ 

* Колонка 2 на самом деле выбрать меню так, а не текст, который появляется пользователю в сетке, я хочу, чтобы базовое значение было установлено. Для разговора, мы будем говорить 'это' = 100 и 'Это' = 999. Так из образца выше, я хочу, чтобы иметь возможность AJAX POST:

1 = 100
2 = 999

Мои запрос AJAX ...

request = $.ajax({ 
    url: 'process.php', 
    type: 'post', 
    data: data 
}); 

Как получить 1 = 100 и 2 = 999 в «данные» переменной для использования в выше запроса AJAX? Я думаю, что я должен использовать $ .each(), но не уверен, и даже если это правильно, я не знаю, что дальше. Я не хочу колонку 3 или 4.

Спасибо за ваше время и внимание.

+0

Хм, интересно, почему я не получаю никаких ответов.Я предоставил информацию об окружающей среде, хорошо отформатированный и понятный код, который я сейчас работаю, описал, к чему я хочу добраться, и какова моя проблема. ** царапины головка * – user1801810

+0

См. мое решение по моему вопросу ниже. Благодаря! – user1801810

ответ

2

Итак, вот что я придумал самостоятельно и прекрасно работает.

onClickButton: function() 
{ 
    var data = {}; 
    var grid = $('#myGrid'); 
    var rows = grid.jqGrid('getDataIDs'); 

    for (i = 0; i < rows.length; i++) 
    { 
     var rowData = grid.jqGrid('getRowData', rows[i]); 
     data[rowData['field1']] = rowData['field2']; 
    } 

    request = $.ajax({ 
     url: 'process.php', 
     type: 'post', 
     data: {data: data} 
    }); 
} 

Это дает POST, с которым я могу работать; на основе моих данных выборочных параметров и их значения ...

  • данных [1] = Этот
  • данных [2] = Это

... который когда Размещенное ...

data%5B1%5D=This&data%5B2%5D=That 

... который PHP рассматривает как массив.

+0

Самодостаточный для победы. – user1801810

Смежные вопросы