Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于删除JqGrid中的行的两个参数_Php_Jquery_Mysql_Json_Jqgrid - Fatal编程技术网

Php 用于删除JqGrid中的行的两个参数

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

我在删除jqGrid中的一行时遇到一些问题

我的行由两个主键组成,它们是email和idms_模块。删除行时需要这两个键,因为一封电子邮件可以有两个或多个idms_模块

以下是语法:

   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,您所说的附加数据属性是什么意思?谢谢你的回答,我决定改变删除功能的方式。因为,我没有更改数据库的权限。