剑道子网格删除(用php)

时间:2013-09-10 01:42:49

标签: php kendo-ui kendo-grid

我使用这样的示例: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。

最终目标是删除用户在“删除”按钮中单击的内容,服务器端可以在数据库中删除它。

关于我的代码的任何想法? 或者还有其他方法可以删除子网格吗?

任何建议都表示赞赏。

1 个答案:

答案 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: "&nbsp;", 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"]);

我需要花很多时间来处理它,我希望它有用。