0
  1. codeigniter コントローラを使用した剣道グリッドの例を教えてください

    私の見解

    $("#grid").kendoGrid({
    dataSource: {
        transport: {
            read: {
                url: 'schoolC/crud',
                contentType: 'application/json'
            },
            create: {
                url: 'schoolC/crud',
                type: "PUT",
                datatype: 'json'
            },
            update: {
                url: 'schoolC/crud',
                type: "POST",
                datatype: 'json'
            },
            destroy: {
                url: 'schoolC/crud',
                type: "POST",
                datatype: 'json'
            }                                
        },
        error: function(e) {
                alert(e.responseText);
            },
        schema: {
            data: "data",
            id: "school_id",
            model: {
                fields: {
                    school_name: { 
                        type: "string",
                        validation: { required: true }
                    }
                }
            }
        },
        pageSize: 10
    },
    height: 400,
    batch: false,
    scrollable: true,
    sortable: true,
    filterable: true,
    resizable: true,
    toolbar: ['create'],
    editable: "popup",
    pageable: {                            
        numeric: true,
        refresh: true,
        pageSizes: true
    }, 
    columns: [
        {
            field: "school_name",
            title: "School Name",                                
            width: 100
        },
        { command: ["edit", "destroy"], title: " ", width: "210px" }                            
    ]
    

    });

    コントローラー方式

    function crud()
    {
        header("Content-type: application/json");
        switch($_SERVER["REQUEST_METHOD"])
        {
            case 'GET':
                echo $this->SchoolM->get_allJsonData(); 
            break;
            case 'PUT':
                echo $this->SchoolM->addSchoolInfo(array('school_name'=> mysql_real_escape_string($_POST["school_name"])));
            break;
            case 'POST':
                echo $this->SchoolM->updateSchoolInfo(array('school_name'=> mysql_real_escape_string($_POST["school_name"])), array('school_id'=> mysql_real_escape_string($_POST["school_id"])));
            break;
            case 'DELETE':
                echo $this->SchoolM->deleteSchool(mysql_real_escape_string($_POST["school_id"]));               
            break;
        }
    }
    

    モデル方法

    function get_allJsonData()
    {
        $arr = array();
        $this->db->from('school');
        $this->db->order_by("school_name", "asc");
        $query = $this->db->get();
        foreach($query->result_object() as $rows )
        {
            $arr[] = $rows;
        }
        return "{\"data\":" .json_encode($arr). "}";
    }
    function addSchoolInfo($school_name)
    {
        return json_encode($this->db->insert('school',$school_name));
    } 
    function updateSchoolInfo($school_date, $condition)
    {
        return json_encode($this->db->update('school', $school_date, $condition));
    }
    function deleteSchool($school_id)
    {
        $this->db->where_in('school_id',$school_id);
        return json_encode($this->db->delete('school'));
    }   
    

    私はそれが読んだcodeigniterを使用していますが、残りの更新と削除の作成は適切に機能しません。また、各作成操作の行のサイズとして多くの空の行を追加します.plsは私を助けてくれます

4

1 に答える 1

0

申し訳ありませんが英語がわからない、自動翻訳これはここで働いています、笑。しかし、私はあなたを助けることができると思います.あなたは彼らの呼び出しをGRIDでCRUDにするのに苦労していますか?

私がしたことは、同じ呼び出しですべてを作成することでしたが、何が行われるかを参照して渡された場合は GET を使用しました。以下の例を参照してください。

$("#grid").kendoGrid({
        dataSource: {
            transport:{
                read: "CRUD.client.php?func=read",
                create: {
                    url: "CRUD.client.php?func=create",
                    type: "POST"
                },
                update: {
                    url: "CRUD.client.php?func=update",
                    type: "POST"
                },
                destroy: {
                    url: "CRUD.client.php?func=delete",
                    type: "POST"
                }
            },

すべてのファイルに同じファイルが渡されると、php が読み取り、if によって誰がアラートを実行するかを決定するパラメーターが渡されることに注意してください。

if ($verb == "GET" && $func == "read") {code CRUD here}

助かりました!!!

于 2013-06-06T12:23:32.753 に答える