升级到jqGrid 5.0.1 DELETE在EDIT仍然有效时停止工作

时间:2015-11-25 12:06:47

标签: php jqgrid upgrade

这是我的网格js的一个片段:

$grid.jqGrid({
        url:'xtras/Products.php',
        editurl:'xtras/Products.php',
        datatype: "json",
        mtype:'GET',
        colModel:[...
            {name:'ID',index:'catalogue.ID', hidden:true, width:10, sortable:false, editable:true, key:true},
            ....]

和PHP方面:

elseif ($_REQUEST["oper"] == "del") {

        $deleteSQL = sprintf("delete from snapper.catalogue where `catalogue`.`ID` = %s",
                        GetSQLValueString($_REQUEST['ID'], "int")
                    );

        $Result = mysqli_query($GLOBALS["___mysqli_ston"],$deleteSQL) or die($error = mysqli_error($GLOBALS["___mysqli_ston"]));
}

其中$_REQUEST['ID']未传递给$_REQUEST["oper"] == "del",但它传递给$_REQUEST["oper"] == "edit"

EDIT转储:

_REQUEST - 2015-11-25 12:59:53: 
Array
(
    [Catalogue] => test523
    [Artist] => STEPHANE GRAPPELLI
    [Title] => kkk1651564
    [UKDP] => 5.50
    [Release_Date] => 25 Nov 15
    [Ppoint] => 1
    [Label] => 2
    [Format] => 33
    [Genre] => 27
    [UPCEAN] => 636551052375
    [AlbumCLineYear] => 0
    [AlbumCLineInfo] => 
    [AlbumPLineYear] => 0
    [AlbumPLineInfo] => 
    [Credits] => 
    [Artist_Sort] => 
    [Active] => 1
    [Deleted] => 1
    [id] => 1951
    [copyID] => 
    [oper] => edit
)

DEL转储:

_REQUEST - 2015-11-25 13:00:49: 
Array
(
    [oper] => del
    [id] => 4
)

其中[id]是网格中的行号,而不是数据库中的ID。为什么呢?

1 个答案:

答案 0 :(得分:2)

如果您希望在编辑/删除过程中发布的数据中的id参数名称为 public class GestoPistola { public enum ESTADO{ DESCARGADA, CARGADA } ESTADO _estado; public void GestoPistola(){ _estado = ESTADO.DESCARGADA; } public void reconocer(Frame f) { System.out.println("LET'S START"); if (!f.hands().isEmpty()) { System.out.println("Hay mano"); Hand hand = f.hands().get(0); FingerList fingers = hand.fingers(); switch(_estado) { … } } } } 而不是prmNames: { id: "ID" },则可以添加jqGrid的ID选项吗?顺便说一下,您可以使用该选项从id中删除不需要的隐藏ID列。

如果您确实需要保留隐藏列colModel并且需要jqGrid将IDid发送到服务器,那么您应该将ID属性添加到定义editrules: { edithidden: true }, hidedlg: true列。请参阅the old answer