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 的相关文章

  • JqG​​rid 选择可能或可能不可见的特定行

    我有一个 jqGrid 并且有几页项目 我有一行的 ID 该行可能位于第一页 也可能隐藏在其他页面的某个位置 给定行的 ID 如何以编程方式选择这样的行 我使用按钮的点击事件如下 on click function var myId thi
  • 如何关闭 jqGrid 的列突出显示(悬停时)?

    问题的标题很好地总结了这一点 有点 如果我启用了 jQuery 主题 如何删除 jqGrid 中列的悬停效果以及鼠标悬停效果 通过编辑与 jqGrid 关联的 css 此更改不得影响同一页面上或系统范围内的其他网格 我回答了同样的问题her
  • jqgrid - 调整大小和覆盖

    HTML
  • jqGrid如何使用EditUrl

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

    有没有办法将对话框消息 请选择行 定位在所选网格的左上角 我只想在警报警告中具有相同的行为 就像编辑和删除表单一样 这个主题解决方案对我不起作用 AlertMod警告消息的JQGrid位置 https stackoverflow com q
  • 如何将 jqgrid 值作为表单字段提交?

    我正在尝试在用户填写传统表单字段 例如用户名 电话等 的表单中使用 jqGrid 该表单包含用于行项目的 jqGrid 用户可以在其中添加 编辑 删除行 完成后提交整个表格 我让网格按我希望的方式工作 我只是无法将网格的内容作为包含表单的一
  • 使 jqGrid 可移动

    看起来 jqGrid 是基于 jQuery 对话框的 是否有可能使其可移动 像对话框一样 我已经能够将它放在对话框中 但有两个标题栏等看起来很奇怪 我 认为 可以向其中添加必要的类以使其可移动 但我对 jQuery 和 jqGrid 仍然相
  • 为jqgrid的每一列添加过滤器

    我有一个jqgrid显示员工的详细信息 我想在每一列中添加一个过滤器 用户可以使用该过滤器输入公司名称 网格显示与网格中的过滤器匹配的所有员工行 谷歌搜索了很多但没有成功 任何参考示例 链接都会有帮助 当您在文本框中键入测试用例的名称时 您
  • jqGrid中的RowID重置,如何防止它?

    由于某种原因 一旦我从分页中执行任何操作 增加行数 移至下一页等 rowID 就会重置 例如 我总共有 75 条记录 我一次显示 15 条记录 总共我有 3 个页面 每个页面可以显示 15 条记录 当我在第一页显示 1 15 的记录时 我得
  • “JQuery”类型的值不存在属性“jqGrid”

    我将 Typescript 与 jqGrid 和 jQuery 一起使用 在下面一行 jQuery this jqGrid editGridRow rowid 我收到消息 JQuery 类型的值不存在属性 jqGrid 关于如何纠正这个问题
  • struts2 中的 JQuery Grid - 初学者

    我对 struts2 和 JQuery 编程很陌生 在我的应用程序中 当调用 loginAction 时 如果用户是管理员 我会将他们定向到 AdminLoadAction 此操作加载 adminHome jsp 我需要的是 adminHo
  • jqgrid 更改单元格值并保持编辑模式

    我在网格中使用内联编辑 在某些情况下我想更改列内单元格的值 我用 setCell 更改它 效果很好 我的问题是 更改后 单元格失去了编辑模式 而该行的所有其他单元格都处于编辑模式 我想在更改单元格后将其保持在编辑模式 现在我所做的是保存该行
  • 在 jQgrid 中加载本地 JSON 数据,无需 AddJsonRows

    我正在使用 addJsonRows 方法将本地数据添加到 jQgrid 由于此方法禁用排序 我需要另一个解决方案 一个限制 我无法设置 url 并从服务器获取数据 因为数据是通过另一个组件传递的 下面的片段揭示了这个案例 注释行显示了限制
  • JQGRID , 获取过滤后的所有行

    过滤 JQgrid 后 我无法获取所有行 分页 我试过 gt var myData grid jqGrid getGridParam data var myData grid jqGrid getRowData 但第一个选项给出了所有行 并
  • 免费 JqGrid - 网格不刷新

    我有一个组合框 当选择更改时 关联的网格将重新填充新数据 div class container fluid div class row div class col md 4 div div div
  • 如何将数据动态分配给jqGrid?

    这是我创建 jqGrid 的代码 ptDataGrid jqGrid datatype local data arrSpecData colModel colmod rowNum 10 rowList 10 pager ptPager gr
  • 如何将“全选”选项添加到 jqGrid 选择工具栏过滤器?

    我正在使用 jqGrid 和过滤器工具栏构建表格 以便用户过滤表中显示的行 如果我使用文本作为搜索类型 这一切都很好 但对于某些列 我想使用选择列表以使用户更容易根据列中的值进行过滤 我可以将列类型设置为 选择 并使用表中的值填充选项 一切
  • 有没有办法在 jqgrid treeGrid url 请求中传回附加数据?

    i am 使用 jqgrid 树视图 http www trirand com jqgridwiki doku php id wiki 3atreegrid我正在传回 json 响应 效果很好 我想将一些有关请求的附加信息传递回 GUI 并
  • JQGrid - 在编辑表单中显示附加列

    我有一个 JQGrid 表 有 30 多个列 我认为这些列的内联编辑对用户来说并不友好 所以我想在网格模式下显示几列 并仅当用户打开该行的编辑表单时显示所有列 这可能吗 在教程中找不到这个 先感谢您 如果你想show并且不要编辑列 然后使用
  • jqgrid。改变主题

    如何在不更改样式表的情况下更改 jqgrid 的外观 基本上我使用 jqueryui 来设计我的网站 但我想为网格使用不同的背景图像 这可能吗 您是否想要将多个 jQueryUI 主题应用到同一页面 并让 jqgrid 使用其中一个主题 同

随机推荐

  • 获取 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插入语句 我正在使