Php 用于删除JqGrid中的行的两个参数
我在删除jqGrid中的一行时遇到一些问题 我的行由两个主键组成,它们是email和idms_模块。删除行时需要这两个键,因为一封电子邮件可以有两个或多个idms_模块 以下是语法:Php 用于删除JqGrid中的行的两个参数,php,jquery,mysql,json,jqgrid,Php,Jquery,Mysql,Json,Jqgrid,我在删除jqGrid中的一行时遇到一些问题 我的行由两个主键组成,它们是email和idms_模块。删除行时需要这两个键,因为一封电子邮件可以有两个或多个idms_模块 以下是语法: jQuery("#grid-uac").jqGrid({ mtype:'GET', url:'functions/get_useraccess.php', editurl:'functions/edit_usera
jQuery("#grid-uac").jqGrid({
mtype:'GET',
url:'functions/get_useraccess.php',
editurl:'functions/edit_useraccess.php',
datatype: "JSON",
colNames:['User Email','Module Access','Level Access'],
colModel:[
{name:'user_email', width:300, editable:true, key:true},
{name:'module_access', width:550,editable:true, key:true,edittype:'select',editoptions:{dataUrl:'functions/get_modusracc.php'}},
{name:'level_access',width:100,editable:true,edittype:'select',editoptions:{value:"0:read only;1:read write"}}
],
loadComplete: function () {
alert("OK");
},
loadError: function (jqXHR, textStatus, errorThrown) {
alert('HTTP status code: ' + jqXHR.status + '\n' +
'textStatus: ' + textStatus + '\n' +
'errorThrown: ' + errorThrown);
alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText);
},
rowNum:10,
rowList:[5,10,15],
pager: '#pager-uac',
sortname: 'user_email',
viewrecords: true,
jsonReader: **{id: "user_email", id2 or some var : "module_access"}**,
sortorder: "asc",
gridview: true,
autoencode:true,
caption:"Inventory User Access Role"
});
例如,我想删除一行,其中包括电子邮件:admin@test.com和idms_模块:6
php代码的一部分是:
$email = $_REQUEST['id'];
$modules= $_REQUEST['another var'];
$query = DELETE FROM table WHERE email= $email AND module = $modules
我已成功从id获取电子邮件,但对于如何获取“另一个变量”没有任何想法。您的服务器能否提供包含在电子邮件+id中的附加数据属性?然后,您可以在jqgrid中将其声明为id列(隐藏),并在将其发回时让服务器取消对其进行加密?首先是关于数据库设计的一个常见注释。通常在数据库中使用整数值。在定义此类列时,可以使用
IDENTITY
或AUTO_INCREMENT
字。通常使用整数列作为主键。在不包含重复项的列上添加了额外的唯一约束
<代码>唯一约束
在列上添加索引,以便快速执行该列的搜索。我认为我在生产数据库中使用的数据库中的所有表都遵循这个规则
您不需要在服务器端更改任何内容,然后可以执行以下操作。不能在colModel
的多个列中使用属性key:true
。如果可以将多行作为一行使用相同的数据,则不能在一列中使用它,如user\u email
。例如,您可以使用由user\u email
组成的组合id
值、module\u access
值和一些分隔符。例如,在的情况下test@mydomain.com“
和模块1”
您可以使用test@mydomain.com@模块1
作为id。第二个@
不能出现在电子邮件中,您可以将其用作分隔符。另一种编码变体将是用户\u电子邮件
的编码(或仅十六进制编码)值、模块访问
的字符和Base64编码(或十六进制编码)值。jqGrid将在删除操作期间向您发送rowid,您将能够将rowid解码为用户电子邮件
和模块访问
您还有一个选择是使用任何rowid,但同时发送
'user\u email'
和'module\u access'
。您可以使用serializedDelData
或onclickSubmit
回调(请参阅)或delData
扩展数据。回调获取rowid作为输入。您可以使用getCell
或getRowData
重试'user\u email'
和'module\u access'
,只需扩展将发送到服务器的数据即可。显示相同的编辑操作。简单的回调重命名将向您显示。您可以在或中找到另一个示例。@Oleg是否可以这样做?如果没有,我将使用另一种方法删除functionhi@Pablo,您所说的附加数据属性是什么意思?谢谢你的回答,我决定改变删除功能的方式。因为,我没有更改数据库的权限。