jqGrid如何使用EditUrl

2024-03-13

我正在使用 jqGrid 使用 jSON 数据维护 MySQL 中的数据库。我能够在网格中显示数据,但是当我尝试通过模式表单添加或编辑数据行时,我收到一条消息“未设置 URL”。但是 editurl 应该包含什么? mysql插入语句?我正在使用网格的预定义添加和编辑功能。

另外,如果你看一下 trirand 演示page http://trirand.com/blog/jqgrid/jqgrid.html在“操作”下,然后在“网格数据”下。他们将他们的 url 指定为 url:'server.php?q=2' 和他们的 editurl:"someurl.php" 他们从不说 someurl.php 包含什么。这就是我迷失的地方,我找不到资源来给我任何有关 editurl php 文件中应该包含什么内容的提示。

感谢您的任何建议。

UPDATE:editurl php 文件中的代码:我将 col 模型中的 POST 值放入变量中。我只需要 switch 语句中的 insert 和 update 语句。看一下我的插入语句,看看我应该使用哪一个。我还必须让您意识到我没有列出数据库中的所有列,而是列出了用户在网格中看到的所有列。第一个插入语句被注释,它声明了值应该根据其顺序插入的列。第二条插入语句遵循数据库中的顺序。您看到“ ”的地方是我不想显示到数据网格以供用户查看的列,因为该信息不相关。

<?php

$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpass = "**********"; 
$dbname = "codes"; 

// connect to the database
$mysql_connect($dbhost, $dbuser, $dbpass) or die("Connection Error: " . mysql_error());

mysql_select_db($dbname) or die("Error conecting to db.");

$div = $_POST['div_id'];
$l2 = $_POST['l2_id'];
$l1l2 = $_POST['l1l2_id'];
$l1l3 = $_POST['l1l3_id'];
$l2l3 = $_POST['l2l3_id'];
$beg = $_POST['exec_beg'];
$end = $_POST['exec_end'];
$csa = $_POST['csa_id'];
$area = $_POST['area_id'];
$areadesc = $_POST['area_desc'];
$shortdesc = $_POST['short_desc'];
$longdesc = $_POST['long_desc'];
$enabled = $_POST['avail_ind'];


switch($_POST['oper'])
{
    case "add":
         $query = "INSERT INTO divcodes values ($div,'',$l1l2,$l2,$l1l3,$l2l3,$beg,$end,'',''$csa,$area,$areadesc,$shortdesc,$longdesc,$enabled,'','','','','',''";
        $run = mysql_query($query);
    break;

    case "edit":
        //do mysql update statement here 
    break;
}

当我将 editurl 设置为我的 php 文件并尝试向网格添加新的数据行时,它给了我内部服务器错误 500。我不知道如何进一步调试它,并且错误 500 是一个常见错误。

我认为由于我使用了网格的预定义操作(添加/编辑),网格只会知道在我的数据库中执行插入或更新语句,但看起来情况并非如此?

更新2:我更改了语法以使用 mysqli 扩展。一旦我重组了插入语句,我就不再收到“内部服务器错误代码 500”。当我单击添加新记录然后填写测试数据然后单击提交时,模式窗口消失,就像数据已添加到网格中一样。但我在网格中找不到数据(也许网格没有重新加载新数据)。我检查了 phpmyadmin,但找不到新行。当我编辑现有行并单击“提交”时,对话框保持打开状态,但我没有收到错误 500,这让我松了一口气。

<?php

$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpass = "**********"; 
$dbname = "codes"; 

// connect to the database
$conn = mysqli_connect($dbhost, $dbuser, $dbpass) or die("Connection Error: " . mysql_error());
mysqli_select_db($conn,$dbname) or die("Error conecting to db.");

$div = $_POST['div_id'];
$l2 = $_POST['l2_id'];
$l1l2 = $_POST['l1l2_id'];
$l1l3 = $_POST['l1l3_id'];
$l2l3 = $_POST['l2l3_id'];
$beg = $_POST['exec_beg'];
$end = $_POST['exec_end'];
$csa = $_POST['csa_id'];
$area = $_POST['area_id'];
$areadesc = $_POST['area_desc'];
$shortdesc = $_POST['short_desc'];
$longdesc = $_POST['long_desc'];
$enabled = $_POST['avail_ind'];

switch($_POST['oper'])
{
    case "add":
        $query = "INSERT INTO divcodes (div_id,l1l2_id,l2_id,l1l3_id,l2l3_id,exec_beg,exec_end,csa_id,area_id,area_desc,short_desc,long_desc,avail_ind) values ($div,$l1l2,$l2,$l1l3,$l2l3,$beg,$end,$csa,$area,$areadesc,$shortdesc,$longdesc,$enabled)";
        mysqli_query($conn,$query);
    break;

    case "edit":
        $query = "UPDATE divcodes SET div_id=$div,l1l2_id=$l2,l2_id=$l1l2,l1l3_id=$l2l3,l2l3_id=$l2l3,exec_beg=$beg,exec_end=$end,csa_id=$csa,area_id=$area,area_desc=$areadesc,short_desc=$shortdesc,long_desc=$longdesc,avail_ind=$enabled";
        mysqli_query($conn,$query); 
    break;
}
?>

The editurl是可以执行您的操作的 PHP 文件INSERTS, UPDATES and DELETES.

有几个参数传递到该文件,包括参数:oper这将是add, edit or del取决于您执行的操作。

在您的 PHP 文件中(editurl文件)我只想做一个switch:

switch ($_POST["oper"]) {
    case "add":
        // do mysql insert statement here
    break;
    case "edit":
        // do mysql update statement here
    break;
    case "del":
        // do mysql delete statement here
    break;
}

传递给该文件的还有名称:值对中该行的所有数据,就像oper范围。这name将是index您在中定义的属性colModel设置网格时的数组。

因此,如果您有一个专栏(来自colModel)看起来像:

{
    name: 'name1',
    index: 'name1',
    width: 95,
    align: "center",
    hidden: false
}

In your editurlPHP 文件中,您可以使用以下方法访问该列的值来构建上面的查询:

$_POST["name1"]

希望这对您有所帮助,如果您还有任何其他问题,请告诉我。我和你一样在 jQGrid 的这一部分中挣扎,所以我知道痛苦!哈哈

UPDATE

您的 MySQL Insert 语句不正确。您不需要包含表中存在的每一列,只需包含必需的列(不能包含的列)null).

例如,我有一个包含三列的表(tableName):

  • ID(必填,不能为空)
  • 姓名(必填,不能为空)
  • 电话(非必填)

如果我想在此表上执行插入操作,但我不想向表中插入任何内容Phone列中,我的插入语句如下所示:

INSERT INTO tableName (ID, Name) VALUES (123, "Frank")

在左侧VALUES是您指定要插入哪些列的位置。在右侧VALUES是我们将插入的实际值。

这里有一个关于 MySQL 语法的简单、有用的链接:http://www.w3schools.com/php/php_mysql_insert.asp http://www.w3schools.com/php/php_mysql_insert.asp

正如您所看到的,在该链接的第一个示例中,他们没有指定哪些列,这意味着他们将把数据插入到所有列中。就您而言,这不是您想要的,所以我会查看他们的第二个示例,该示例确实指定了您要插入的列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jqGrid如何使用EditUrl 的相关文章

  • 在jqgrid的列中添加图像

    我想在 jqgrid 的第一列中显示一个小图像 以显示从数据库获取的所有数据 jquery tableName jqgrid colNames colModel width 25 name someValue index somevalue
  • struts2 中的 JQuery Grid - 初学者

    我对 struts2 和 JQuery 编程很陌生 在我的应用程序中 当调用 loginAction 时 如果用户是管理员 我会将他们定向到 AdminLoadAction 此操作加载 adminHome jsp 我需要的是 adminHo
  • 在 jqgrid 中编辑树形网格展开列的任何字段时..获取该单元格的 html 内容,而不是实际值。有什么解决办法吗?

    在 jqgrid for treegrid 中 当我单击 ExpandColumn name 列的单元格中显示的值进行编辑时 我将获取单元格内内容的 html 我得到的 html 内容是 div class tree wrap tree w
  • 如何调用重置选择并选择jqGrid中的所有内容?

    如何重置所选行并在单击外部按钮时选择所有行 我正在尝试重置选择 但不起作用 jQuery selectAll click function jQuery cbox trigger click jQuery clear click funct
  • JqG​​rid 搜索字段的多个文本框

    我想知道 JqGrid 高级搜索是否可以为我想要搜索的某些字段显示多个文本框 例如 如果我有一个 电话号码 字段 我希望能够可视化 2 个框 一个用于区号 另一个用于电话号码的其余部分 然后按 查找 后 我希望能够获取两个值并将它们合并或执
  • jQuery - jQGrid - 展开、折叠网格行上的子网格单击

    Here https stackoverflow com questions 3345401有一个关于当我们单击一行时如何扩展子网格的答案 onSelectRow function rowId jqgrid id expandSubGrid
  • jqgrid按文本问题对列进行排序

    我在我的网站中使用了 jqgrid 但遇到了一个问题 我做了什么 name type index type width 40 editable true edittype select sorttype text editoptions v
  • 根据 JQGRID 中的条件编辑行

    在 JQGRID 中使用表单编辑 我用不同的颜色显示行 红色 无法编辑行 黑色 可以编辑行 1 Option 当用户单击编辑按钮并且所选行为红色时 应显示消息记录 无法编辑 2 选项 如果用户选择了黑色标记的可编辑行 用户可以编辑该行 但是
  • jqgrid 掩码十进制数字单元格

    我的 jgrid 中有一个 float 类型的列 我想在用户输入单元格时屏蔽列单元格 例如 掩码应为 99999 99 当 9 0 9 之间的任何数字时 我希望该点左侧最多有 5 位数字 该点右侧最多有 2 位数字 并且可以输入少于最大值的
  • jqGrid 复选框列

    我有一个相当复杂的网格 有两列格式化为复选框 这些列定义如下 name Alert A index Alert A width 22 align center sortable false formatter CheckBoxFormatt
  • 循环动态展开子网格 - JQGrid

    我有一个带有使用 subGridRowExpanded 的子网格的网格 我想动态扩展网格的一些行 所以我写了以下内容 在第一个网格的 GridComplete 事件中 ids 是我的网格的行 id 数组 for int i 0 i lt i
  • 当我使用 gridview:true 时, afterInsertRow : function(ids) 方法不执行

    当我设定gridview to true gridview true 在我们的jqGrid中增加jqGrid的性能 方法如下插入行后 或者其他类似的方法不被执行 以下是我的jgGrid的代码 jQuery displaylistGrid j
  • jqGrid 具有自动高度;但有最大高度和滚动条

    有没有办法让jqGrid根据行数自动调整高度 但是当达到一定高度时 它的高度不能再增加并且出现垂直滚动条 Thanks D 我建议你设置 max height 财产在bdiv https stackoverflow com question
  • jqGrid如何将额外的类应用于标题列

    我想在特定列上应用一个额外的类 我知道通过在 colModel 中指定这一点对于行是可能的 但这些类仅应用于 结果行 中的列 而不应用于标题 我想要达到的是通过简单的类名隐藏较小视口的特定列 与 Twitter Bootstrap 一起使用
  • JQGrid自定义排序

    我有一个 JQGrid 其中填充了正常工作的数据 默认排序功能按预期工作 但是 我想按单击的列和按名称列排序 每次 我觉得onSortCol是我应该开始的地方 但是文档中没有太多关于如何对表的内容进行排序的内容 理想情况下 我希望不必编写自
  • 提高 JQGrid 树网格性能

    我有一个相当大的客户端树网格 树的总大小为 3000 但一个节点有 1500 个子节点 它是一个邻接模型树 我只加载所需的数据 当我展开每个节点时 Ajax 调用 在没有很多子节点的节点上 即使在扩展大节点时 性能也很好 但每当我折叠大节点
  • 连续 GridUnload createGrid 不起作用

    任何想法为什么多次调用执行以下操作的函数 grid jqGrid GridUnload createGrid 只会每隔一段时间创建一次网格 但是 每次调用时 以下内容都会起作用 grid jqGrid GridUnload setTimeo
  • jqGrid:对列重新排序时是否有事件?

    我正在使用 jqGrid 中的列重新排序功能 grid jQuery list jqGrid sortable true 列重新排序后是否会触发事件 如果有的话我也看不到 提前致谢 在 grid jqueryui js jqGrid v3
  • 是否可以将多个事件处理程序绑定到 JqGrid 事件而不覆盖以前的事件处理程序?

    例如 我在每次页面加载时调用默认设置 并将函数绑定到 loadComplete 来为网格执行一些基本格式化 在某些页面上 我想同时执行其他逻辑 但如果我在网格定义中设置 loadComplete 它将覆盖默认值中设置的函数 有没有办法绑定多
  • jqgrid长文本换行

    在jqgrid中 我们从数据库获取长文本 但在JQgrid中显示时需要换行 有什么方法可以换行长文本 没有任何空格 我们只有 110px 的空间用于收款人姓名字段 因为我们有多个列需要显示 我们的代码就像 name firstPayeeNa

随机推荐

  • 获取 Instagram 上用户的性别

    我只是想知道是否有办法在 Instagram 上获取用户的性别 我浏览了 Instagram 的 api 从 users userId 获取的用户信息不包含性别信息 感谢您的帮助 NO 目前还没有办法从API获取instagram用户的性别
  • UTF-8 文本(印地语)未显示在浏览器窗口或 Eclipse 控制台上

    我必须在浏览器屏幕上显示印地语 或任何区域语言 的文本 我将从数据库中获取此文本 为此 我从以下几个方面开始 String escapedStr u0905 u092d u0940 u0938 u092e u092f u0939 u0948
  • 在Python中找到分数列表的最小公分母

    我有一个分数列表 from fractions import Fraction fractions list Fraction 3 14 Fraction 1 7 Fraction 9 14 输出应该是一个列表 其中包含每个分数的分子 最后
  • React - 将所有数据从 json 加载到组件中

    我正在使用 React 并尝试将数据从本地 json 文件加载到我的组件中 我试图打印所有信息 包括名称 值对中的 名称 不仅仅是值 使其看起来像一个表单 我正在寻找最好的方法来做到这一点 我需要解析吗 我需要使用地图功能吗 我是 Reac
  • 在 PHP 中获取数组的最后一个元素而不更改数组? [复制]

    这个问题在这里已经有答案了 array pop 将其从数组中删除 end 改变内部指针 唯一的方法真的像这样 my array array pop array keys my array 这有效 list end array slice a
  • 如何检查 window.external 上是否存在函数

    如何检查 window external 上是否存在函数 我正在从 javascript 调用 C 代码 并且想检查 C 对象中是否存在方法 我找到了路 只需使用 in 运算符 如下所示 if FunctionName in window
  • 元组的串联

    普通文本 我在 python 3 2 1 上编码时遇到一些问题 实际上我正在参加有关 python 2 5 的在线讲座 这是代码 x 100 divisors for i in range 1 x if x i 0 divisors div
  • 在 bash shell 中打印星号(“*”)

    a 5 echo aMin bash etc init d ckDskCheck sh 当我尝试运行以下代码时 它会正确显示 5 bash etc init d ckDskCheck sh 但是 当我尝试使用以下代码将结果分配给变量并将其打
  • 快速使用未解析的标识符“UIApplicationStateInactive”

    在我处理推送通知的 Swift 代码中 我有这一行 if application applicationState UIApplicationStateInactive application applicationState UIAppl
  • 如何在sqlite android中插入多行

    我有一种方法可以将值插入到sqlite在一个班级里 在主要活动中 我正在解析 json 值并尝试将这些值插入到sqlite在循环中 因为我必须插入不止一行 但只有一行被添加到数据库中 添加多行的方法如下 public void addSes
  • 如何访问SetDefaultContentHeaders中的底层对象?

    我有一个 Web api 我在其中返回一个对象 当我使用接受标头 image jpg 时 我想要该对象的图像表示形式 但我想根据我返回的对象设置文件名 我已经实施了一个BufferedMediaTypeFormatter并认为我应该在方法中
  • 如何在 Windows 中使用本地路径访问 Subversion 存储库?

    我安装了 CollabNet Subversion 服务器和客户端 运行附带的 Apache 从服务器上的命令行 我可以使用类似的路径轻松访问存储库 http server port svn repository 但我无法使用它在磁盘上的实
  • 类似 git 界面的最佳方法

    我正在编写一个小型命令行待办事项应用程序 它具有类似于 git 的通用界面 它可以执行多项任务 add list complete 所有这些都应该可以通过todo
  • docker容器主机名顺序号

    在 docker swarm 中存在副本 规模的情况下 是否有任何选项可以让主机名 容器名具有一些序列号 version 3 services serA image someimage1 hostname serA serB image s
  • 在 C# 中将字符串存储为 UTF8

    我在 C 中进行了大量的字符串操作 并且确实需要将字符串每个字符存储一个字节 这是因为我需要在内存中同时存储千兆字节的文本 这会导致内存不足的问题 我确信该文本永远不会包含非 ASCII 字符 因此就我的目的而言 System String
  • 一个类可以从类本身内部取消吗?

    例如 此代码有效吗 class abc int x y abc int x int y this x x this y y while true update public void update x y if y 0 this null
  • Python的seek函数是如何工作的?

    如果我有一些类似文件的对象并执行以下操作 F open abc r loc F tell F seek loc 10 寻求有什么作用 是从文件开头开始读取loc 10字节 或者它是否足够聪明 只备份 10 个字节 它是特定于操作系统和 li
  • 用 AJAX 调用替换多少内容就太多了?

    我在尝试进行 AJAX 开发时遇到了一个常见问题 在可能的情况下 我喜欢尝试只更新现有布局中的数据 而不是布局本身 例如 采用下面的 div div Here is some content div 我会得到更新的值content 5从服务
  • 使用“read”读取密码时如何回显星号(*)?

    如果我想回显 我需要对 Bash 中的代码做什么 当用户在 using 中键入某些内容时 用 s 代替密码字符 甚至完全隐藏这些字符 read As 马克 鲁沙科夫指出 read s将抑制在提示符下键入的字符的回显 您可以利用该功能作为此脚
  • jqGrid如何使用EditUrl

    我正在使用 jqGrid 使用 jSON 数据维护 MySQL 中的数据库 我能够在网格中显示数据 但是当我尝试通过模式表单添加或编辑数据行时 我收到一条消息 未设置 URL 但是 editurl 应该包含什么 mysql插入语句 我正在使