настроить: вывод POST в jqGrid без изменения исходного файла? - PullRequest
0 голосов
/ 22 августа 2011

Я пытаюсь включить jqGrid в MODx, как и другой обмен данными с использованием $. Ajax, переместить вызов с URL-адреса на ресурс, защищенный паролем, и оттуда вызвать фрагмент кода в PHP, поэтому структура безопасности, вызов ajax гарантирован

Это один из примеров фрагмента $ .ajax:

      $.ajax ({
                url :'[[~94]]',
                type: 'post',
                async: false,
                success: function(rsp) {
                                $.Cookie("xxxxxx-tipodirlist", rsp);
                          }

             });

* [[~ 94]] - защищенный ресурс, находящийся в вызове фрагмента [[! SnpBridgedata_blabla]]

система прекрасно работает во всем веб-приложении, обеспечивая безопасное и надежное получение и отправку данных.

Теперь заказчик спросил меня о готовом приложении, которое хочет получить веб-результаты в хорошей сетке, и после просмотра небольшого количества кода я решил использовать jqGrid для своего проекта. интеграция прошла быстро, и я очень рад, что изменил «DataTable» на «jqGrid», но когда я закончил тест, измените абсолютный путь на xxxxxx.php с вызовом сниппета

это код для jqGrid:

  chargeSedi function (idx)
  {
    // Test with file. Php !work fine!
    // Var esURL = 'http://xxxxx.com/xxxxxxx.php?IDX =' + idx;
    // Test with MODx resource  !not work!
    esURL var = '[[~ 97]] & IDX =' + idx;
    csURL var = '[[~ 96]] & IDX =' + idx;
    tipodirlist = $ var. cookie ("xxxxxxxx-tipodirlist");
    tiposedelist = $ var. cookie ("xxxxxxx-tiposedelist");


  $("#sediTable").ready(function() { 
      $("#sediTable").jqGrid({ 
              url:csURL, 
              datatype: "json",
              height: 250, 
              autowidth:true,
              colNames:[ 'ID','CODICE', 'NOME','TDIR', 'DIR','COMUNE', 'PROVINCIA','CAP', 'TSEDE','NOTA'], 
              colModel:[ 

 {name:'ID',index:'ID', width:25, editable: false}, 
 {name:'CODICE',index:'CODICE', width:60, editable: true}, 
 {name:'NOME',index:'NOME', width:60, editable: true}, 
 {name:'TDIR',index:'TDIR', width:60, editable: true,edittype:"select",editoptions:{value:tipodirlist}},         
 {name:'DIR',index:'DIR', width:200, sortable:false,editable: true},
 {name:'COMUNE',index:'COMUNE', width:170, sortable:false,editable: true},
 {name:'PROVINCIA',index:'PROVINCIA', width:170, sortable:false,editable: true},
 {name:'CAP',index:'CAP', width:40, sortable:false,editable: true},
 {name:'TSEDE',index:'TSEDE', width:90, editable: true,edittype:"select",editoptions:{value:tiposedelist}},       
 {name:'NOTA',index:'NOTA', width:170, sortable:false,editable: true,edittype:"textarea", editoptions:{rows:"2",cols:"10"}} ], 

      sortname: 'ID', 
      viewrecords: true, 
      sortorder: "desc", 
      loadonce: true,
      editurl: esURL , 
      caption: "Sedi" }); 

}); 

]

и, к моему удивлению, MODx запрещает доступ к ajax-вызовам jqGrid, как если бы вы были вне сеанса, но после нескольких часов тестирования и наблюдения за трафиком с помощью wireshark я понял, что jqGrid отправляет переменную POST с именем "id" и вызывает MODx a ПОЛУЧИТЬ переменную "id". это в других средах возможно без проблем, но невозможно с MODx, и есть проблема.

мой вопрос, как я могу изменить имя переменной POST "id" jqGrid, не меняя источник jqGrid?

в то же время хотел спросить, вы можете настроить импорт выберите значение, а не индекс

пример трама ПОСТ:

            {Name: 'TDIR', index: 'TDIR', width: 60, editable: true, EditType: "select" editoptions: {value: tipodirlist}}

tipodirlist = 1: через; 2: площадь; 3: ect

TDIR = 2

   CODICE=1&NOME=principale&TDIR=2&DIR=Roma&COMUNE=Torino&PROVINCIA=Torino&CAP=10000&TSEDE=2&NOTA=NO=edit&id=0

для этого:

TDIR = площадь

   CODICE=1&NOME=principale&TDIR=piazza&DIR=Roma&COMUNE=Torino&PROVINCIA=Torino&CAP=10000&TSEDE=2&NOTA=NO=edit&id=0

без необходимости фильтровать результаты на сервере.


Надеюсь, я все объяснил хорошо и ясно. как я сам себе задавался, команда «StackOverflow» перед тем, как задать этот вопрос

Большое спасибо Привет

Niro.

PS. Надеюсь, что БОГ "Олег" мне поможет :) 1045 *

1 Ответ

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

Я не знаю и не использую MODx. Тем не менее я надеюсь, что ваша проблема заключается в следующем: как переименовать имя параметра id, чтобы он не конфликтовал с параметром id, используемым MODx.

Если я правильно понял ваш вопрос, вам нужно просто добавить дополнительный параметр prmNames , который задает новое имя параметра id, используемого в операциях редактирования:

prmNames: {id: 'myId'}

В этом примере имя параметра по умолчанию id ({id: "id"}) будет переименовано в myId, которое следует использовать в серверной части.

...