project_ownerships – id_own,project,code,own_current,own_future
项目 – id,项目,位置,类型,类型2,区域,运输,阶段
使用连接表SQL查询将数据读入网页表.
$query_value = isset($_GET['value']) ? $_GET['value'] : ""; $sql = "SELECT project_ownerships.*,projects.* FROM project_ownerships,projects WHERE project_ownerships.project = projects.project AND project_ownerships.code = $query_value'"; $result = $MysqLi->query($sql);
但是我无法使编辑更新正常工作.我只能从一个db-table获取一个data-id值.
所以任何属于项目表的更新都会更新,但对project_ownerships的任何更新都没有正确的id值并更新错误的db-record
这是更新功能.此函数返回错误“找不到索引或名称id_own的列”
$.ajax({ url: 'update_multi.PHP',type: 'POST',dataType: "html",data: { tablename: editableGrid.getColumnName(columnIndex) == "own_current" ? "project_ownerships" : "projects",id: editableGrid.getColumnName(columnIndex) == "own_current" ? editableGrid.getValueAt(rowIndex,editableGrid.getColumn("id_own")) : editableGrid.getRowId(rowIndex),newvalue: editableGrid.getColumnType(columnIndex) == "boolean" ? (newValue ? 1 : 0) : newValue,colname: editableGrid.getColumnName(columnIndex),coltype: editableGrid.getColumnType(columnIndex) },success: function (...,error: function(...,async: true });
这是PHP更新
$tablename = $MysqLi->real_escape_string(strip_tags($_POST['tablename'])); $id = $MysqLi->real_escape_string(strip_tags($_POST['id'])); $value = $MysqLi->real_escape_string($_POST['newvalue']); $colname = $MysqLi->real_escape_string(strip_tags($_POST['colname'])); $coltype = $MysqLi->real_escape_string(strip_tags($_POST['coltype'])); $id_column = ""; if ($tablename == "projects") {$id_column = "id";} else {$id_column = "id_own";} if ( $stmt = $MysqLi->prepare("UPDATE ".$tablename." SET ".$colname." = ? WHERE ".$id_column." = ?")) { $stmt->bind_param("si",$value,$id); $return = $stmt->execute(); $stmt->close(); }
基本上我想要做的……
如果从sql中删除了projects.id,则更新将不起作用
如果project_ownership.id_own更改为project_ownership.id并且projects.id被删除,则更新将起作用,但仅适用于project_ownership.*字段
另外,当发送更新时,可以选择正确的表名
tablename: editableGrid.getColumnName(columnIndex) == "own_current" ? "project_ownerships" : "projects",
所以使用相同的逻辑
id: editableGrid.getColumnName(columnIndex) == "own_current" ? editableGrid.getValueAt(rowIndex,
首先,识别出own_current存在,并将参数传递给editableGrid.getValueAt(rowIndex,editableGrid.getColumn(“id_own”)),但返回的错误是“没有找到id_own名称的列”……?
我真的很困惑..
但是当它在那里它无法找到…
任何帮助都会很棒
如何定义ajax-data-id列或rowIndex列?
我正在研究这个理论
editableGrid.getRowId(rowIndex位置)
可能是这样的东西(显然不会这样,否则这会起作用)
editableGrid.getValueAt(rowIndex,editableGrid.getColumn(“id_own”))
但我也试过了
editableGrid.getValueAt(rowIndex,editableGrid.getColumnIndex(“id_own”))
返回“无效列索引-1”
和
editableGrid.getValueAt(rowIndex,editableGrid.getColumnName(“id_own”))
UPDATE
editablegrid中有一些私有函数可以定义哪个行id.所以我想这使它成为一个可编辑的网格问题,而不是真正适合这里的javascript,ajax或PHP问题
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。