Сохранить отредактированную ячейку в mysql. Как я могу отправить идентификатор с отредактированными данными ячейки?

у меня проблема, что я не могу отправить какой-либо идентификатор для отредактированного содержимого в файл edit.php. например, он автоматически отправляет параметр id=1 для первой строки в сетке... но это не то же значение, что и в столбце таблицы mysql "id". правильный идентификатор отображается в сетке. В первой строке указано идентификатор 3, но когда я редактирую данные и сохраняю их, идентификатор сетки отображается как 1. как я могу отправить и исправить идентификатор в edit.php?

Заранее спасибо за помощь.

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

            jQuery("#statsgrid").jqGrid(
            {
            url:'modules/json.php?stats=true',
            datatype: 'json',
            mtype: 'POST',
                colNames:['ID', 'Nickname','Country', 'IP', 'Notes'], 
                colModel:
                [ 
                    {name:'id',index:'id', width:90},
                    {name:'nick',index:'nick', width:90},
                    {name:'country',index:'country', width:80},  
                    {name:'ip',index:'ip', width:100}, 
                    {name:'note',index:'note', width:150, sortable:false, editable:true, editoptions:{size:10}} 
                ], 
            pager: '#statspager',
            rowNum:10,
            rowList:[10,20,30,50,100],
            sortname: 'nick',
            sortorder: 'desc',
            height: '100%',
            viewrecords: true,
            editurl: 'modules/edit.php',
            caption: 'Statistics'
        }).navGrid("#statspager",
        {}, //options 
        {height:280,reloadAfterSubmit:false,url:'modules/edit.php'}, // edit options 
        {height:280,reloadAfterSubmit:false}, // add options 
        {reloadAfterSubmit:false}, // del options 
        {} // search options 
        );

person Community    schedule 12.08.2009    source источник
comment
Вам нужно предоставить больше контекста. Все, что нам нужно, это то, что вы там написали. Некоторый урезанный код и информация о схеме были бы полезны.   -  person Adam Batkin    schedule 12.08.2009


Ответы (3)


добавьте дополнительное имя класса с идентификатором базы данных с префиксом некоторой строки:

<td class="something table_column_123">value</td>

И проанализируйте table_column_123 при отправке обратно

person Mark L    schedule 12.08.2009
comment
я не понимаю, что вы имеете в виду, извините... я в значительной степени новичок, когда дело доходит до js. правильный идентификатор отображается в сетке, но неправильный передается в edit.php... так как я могу контролировать постданные из сетки в edit.php? - person ; 12.08.2009

Настройте JSONReader для использования идентификатора БД вместо сгенерированного идентификатора, добавив:

jsonReader: {
    id: "id"
}

...к вызову jqGrid.

Обратите внимание, однако, что это значение по умолчанию. Если сетка еще не получает ваши идентификаторы, значит происходит что-то, чего вы нам не показали, или приведенный выше пример на самом деле не что ты делаешь.

person Craig Stuntz    schedule 13.08.2009
comment
да, я только что понял, что не так... я неправильно создал данные json... я сделал ячейки псевдонимов вместо ячеек идентификаторов. :D спасибо за вашу помощь. - person ; 14.08.2009

Вы также можете попробовать добавить свойство «ключ» в свою строку идентификатора в colmodel. См. документацию об этом здесь

person Ron Harlev    schedule 22.08.2009