Php 升级到jqGrid 5.0.1删除停止工作而编辑仍然有效
以下是我的网格js的一个片段:Php 升级到jqGrid 5.0.1删除停止工作而编辑仍然有效,php,jqgrid,upgrade,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:f
$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"]));
}
其中,$\u请求['ID']
未传递给$\u请求[“oper”]=“del”
,但它确实传递给$\u请求[“oper”]=“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
)
删除转储:
_REQUEST - 2015-11-25 13:00:49:
Array
(
[oper] => del
[id] => 4
)
其中
[id]
是网格中的行号,而不是数据库中的id
。为什么?如果您希望在编辑/删除期间发布的数据中id参数的名称将是id
,而不是id
,那么您可能应该添加jqGrid的prmNames:{id:}
选项?通过使用该选项,您可以从colModel
中删除不需要的隐藏ID
列
如果您确实需要保留隐藏列
ID
,并且需要jqGrid将ID
和ID
发送到服务器,那么您应该将editrules:{edithidden:true},hiddedLG:true
属性添加到ID
列的定义中。请参阅。嗨,奥列格!长时间。实际上我想到了这一点,并尝试使用id和id-结果相同-编辑有效,删除无效。刚刚尝试了prmNames
-它也不起作用=(它仍然传递网格数组中的行数([oper]=>del[ID]=>2)我添加了editrules:{edithidden:true},hidedlg:true
idkey:
true
和false
-不起作用…@Elen:我不确定您使用的是哪个具体问题。您可以尝试将CSS的URL和JS文件的URL(至少是临时的)修改为(jqGrid的独立分支,我开发了将近一年)。请参阅带有URL的文章。如果您想获得正确的发布数据,那么您描述的问题实际上是Guriddo bug。如果您想使用Guriddo,请报告它。哦,我没有意识到。我更喜欢旧网格,而不是Gruriddo。让我来看看。@Elen:起源于旧jqGrid,它在麻省理工学院和/或GPLv2更名为Guriddo jqGrid JS,其源代码仍在打开中,但该产品现在需要购买,请参见价格。不久之后,我为最新的免费版本4.7做了准备,并继续开发。我实现的许多新功能都在上进行了描述,每个版本都有自述。@Elen:您可以替换val.toLowerCase()
到String(val).toLowerCase()
或测试if(val==“String”和&val.toLowerCase()==“done”){…
或if(val==null和&val.toLowerCase()==“done”){…
。我重写了jqGrid代码的许多部分以实现新功能。以前您的旧代码是不安全的,现在如果输入数据是null
,您会得到val
作为null
。在简单的代码修复之后,您的代码还能工作吗?