0

jquery-datatables-editableを使用しており、更新時に投稿される値を設定しようとしています。
ドキュメントによると、これは sName プロパティ( aoColumns に属する)を設定することで実行できます
私は運がない aoColumns と aoColumnDefs の両方で定義して、例に従ってみました。

何か案は?
コードサンプル;

ビューで:

<?php
<div>
    <button id="p_btnAddNewRow">Add</button>
    <button id="p_btnDeleteRow">Delete</button>

    <div id="p-container">
        <table cellpadding="0" cellspacing="0" border="0" class="display" id="p-table">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>Name</th>
                    <th>Notes</th>
                </tr>
            </thead>
            <tbody>
                <?php
                if (isset($p['primary']) && is_array($p['primary']) && (count($p['primary']) > 0)) {
                    foreach ($p['primary'] as $primary) {
                ?>
                <tr id="<?php echo $primary->id; ?>">
                    <td><?php echo $primary->code; ?></td>
                    <td><?php echo $primary->name; ?></td>
                    <td><?php echo $primary->notes; ?></td>
                </tr>
                <?php
                    }
                }
                ?>
            </tbody>
        </table>
    </div>
</div>
?>

JS;

<script type="text/javascript">

var pTable;
$(function() {
    pTable = $('#primary-audiences-table').dataTable().makeEditable({
        sAddNewRowFormId: "p_formAddNewRow",
        sAddNewRowButtonId: "p_btnAddNewRow",
        sAddURL: "/templates/ptable/add",
        fnOnNewRowPosted: function(data) {
                            if(data.indexOf("Error", 0) == 0) {
                                //Show error message
                                return false;
                            } else {
                                //Show success message and add row
                                return true;
                            }
                        },
        sUpdateURL: "/templates/ptable/edit",
        sDeleteRowButtonId: "p_btnDeleteRow",
        sDeleteURL: "/templates/ptable/delete",
        "aoColumns": [
                        {
                            sName: 'code',
                            indicator: 'Saving ID...',
                            tooltip: 'Double Click to edit',
                            type: 'textarea',
                            submit: 'Save changes'
                        },
                        {
                            sName: 'name',
                            indicator: 'Saving name...',
                            tooltip: 'Double Click to edit',
                            type: 'textarea',
                            submit: 'Save changes'
                        },
                        {
                            sName: 'notes',
                            indicator: 'Saving notes...',
                            tooltip: 'Double Click to edit',
                            type: 'textarea',
                            submit: 'Save changes'
                        }
                ]
    });
});

サンプル応答 ($_POST の print_r):

(
    [value] => test
    [id] => 2784
    [rowId] => 0
    [columnPosition] => 0
    [columnId] => 0
    [columnName] => ID <- should be **code**
)
4

1 に答える 1

0

私は答えを見つけました: プログラマーにもっとコーヒーを与えて (それは私です)、ドキュメントを適切に読んでください!!

sNameプロパティは、makeEditable 拡張機能ではなく、dataTables拡張機能関連付けられています。ドキュメントの例はこれを示していますが、正しく読むことができませんでした。私の悪い。

したがって、正しい書き方は次のとおりです。

<script type="text/javascript">

var pTable;
$(function() {
    pTable = $('#primary-audiences-table').dataTable({
        aoColumns: [ {"sName": "code"}, {"sName": "name"}, {"sName": "notes"} ]
    }).makeEditable({
        sAddNewRowFormId: "p_formAddNewRow",
        sAddNewRowButtonId: "p_btnAddNewRow",
        sAddURL: "/templates/ptable/add",
        fnOnNewRowPosted: function(data) {
                            if(data.indexOf("Error", 0) == 0) {
                                //Show error message
                                return false;
                            } else {
                                //Show success message and add row
                                return true;
                            }
                        },
        sUpdateURL: "/templates/ptable/edit",
        sDeleteRowButtonId: "p_btnDeleteRow",
        sDeleteURL: "/templates/ptable/delete",
        "aoColumns": [
                        {
                            indicator: 'Saving ID...',
                            tooltip: 'Double Click to edit',
                            type: 'textarea',
                            submit: 'Save changes'
                        },
                        {
                            indicator: 'Saving name...',
                            tooltip: 'Double Click to edit',
                            type: 'textarea',
                            submit: 'Save changes'
                        },
                        {
                            indicator: 'Saving notes...',
                            tooltip: 'Double Click to edit',
                            type: 'textarea',
                            submit: 'Save changes'
                        }
                ]
    });
});

</script>
于 2012-12-05T08:52:57.323 に答える