我使用这样的示例:Tutorial for Kendo and PHP
我在网格中使用子网格中的代码:
subDS = new kendo.data.DataSource({
transport: {
read: "data/channelName.php?acc="+e.data.userId,
destroy: {
url: "data/chMove.php",
type: "DELETE",
complete: function (e) {
$("#grid").data("kendoGrid").dataSource.read();
}
}
},
error: function(e) {
alert(e.responseText);
},
schema: {
data: "results",
model: {
id: "channelId"
}
}
});
detailRow.find(".subgrid").kendoGrid({
dataSource: subDS,
columns: [
{
title: "Channel Name", field: "channelname"
},
{
command: ["destroy"], title: " ", width: "100px"
}]
});
但是,代码不会在PHP代码的服务器端触发,
我不确定客户端代码是错还是服务器端?
读回:
{ “结果”:[{ “CHANNELNAME”: “测试”},{ “CHANNELNAME”: “5413trret”},{ “CHANNELNAME”: “d453”},{ “CHANNELNAME”: “TEST3”},{ “CHANNELNAME”: “叔”},{ “CHANNELNAME”: “TEST5”}]}
和userId在读取网格。
服务器端(chMove.php)我尝试测试它是否被激活使用如下警告:
<?php
// determine the request type
$verb = $_SERVER["REQUEST_METHOD"];
echo "<script>alert('"."123"."');</script>";
?>
但警报永远不会被解雇,不用说我想得到parse_str(file_get_contents('php://input'), $request );
稍后解析$ request。
最终目标是删除用户在“删除”按钮中单击的内容,服务器端可以在数据库中删除它。
关于我的代码的任何想法? 或者还有其他方法可以删除子网格吗?
任何建议都表示赞赏。
答案 0 :(得分:0)
好的,我有替代方法。 我看一下手册:Below show how to fired remove function
代码就像:
var detailRow = e.detailRow;
subDS = new kendo.data.DataSource({
transport: {
read: "data/channelName.php?acc="+e.data.userId
},
error: function(e) {
alert(e.responseText);
},
schema: {
data: "results",
model: {
id: "channelid",
fields: {
channelname:{ editable: false}
}
}
}
});
// create a subgrid for the current detail row, getting territory data for this employee
detailRow.find(".subgrid").kendoGrid({
columns: [
{ title: "Channel Name", field: "channelname"},
{ command: "destroy", title: " ", width: "100px" }
],
dataSource: subDS,
editable: true,
remove: function(e) {
//alert("Removing:" + e.model.channelid);
var xmlhttp2;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp2=new XMLHttpRequest();
} else {
xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp2.open("POST","data/chMove.php",true);
xmlhttp2.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp2.send("channel="+e.model.channelid);
}
});
最重要的是将子网格设置为可编辑(我之前没有设置属性),
并且id的模型可以让您在数据中使用(“结果”)。
我还展示了连接到PHP端的技巧:)
然后您可以像往常一样处理服务器端:
(在chMove.php中)
$channel=mysql_real_escape_string($_POST["channel"]);
我需要花很多时间来处理它,我希望它有用。