Datatables, jeditable и jquery timepicker в Zend Framework, fnupdate не может обновить старое значение - PullRequest
0 голосов
/ 03 февраля 2012

Я написал код для интеграции средства выбора времени с редактируемым, который используется для создания всех соединений, кроме скрытого идентификатора и первого редактируемого. Я не смог заставить fnupdate сделать мой отредактированный кулмн обновленным до нового значения, когда оно будет опубликовано на стороне сервера. Я могу получить опубликованные значения для обработки на стороне сервера, но клиентская часть не обновляется с помощью fnupdate.

Пожалуйста, посмотрите код ниже и попробуйте рассказать мне, что я делаю неправильно, потому что у меня много страниц, которые работают одинаково.

    $(document).ready(function() {

        oTable = $('#scheduleTable').dataTable(
        {
            "sDom"          : '<"top"flip>rt<"bottom"<"clear">',
            "bAutoWidth"    : false,
            "bProcessing"   : true,
            bJQueryUI:true,
            "bServerSide": true,
            "bFilter":false,
            "bSort": false,
            "bInfo": false,
            "bPaginate":false,
            "aoColumns":[
                {
                    "bVisible" : false
                },
                {
                },
                {},
                {},
                {},
                {}
            ],
            "fnRowCallback" : function (nRow, aData, iDisplayIndex) {
                $(nRow).attr('id', '' + aData[0]);
                //i starting from one to make the first element in td non editable
                for (i = 1; i < aData.length; i ++) {
                    $('td:eq(' + i + ') ', nRow).editable("<?= $aupdateUrl; ?>", {
                        'callback': function (sValue, y) {
                            var aPos = oTable.fnGetPosition(this);
                            oTable.fnUpdate(sValue, aPos[0], aPos[1]);

                        },
                        "submitdata": function ( value, settings ) {
                            return {
                                "row_id": this.parentNode.getAttribute('id'),
                                "column": oTable.fnGetPosition( this )[2]
                            };
                        },
                        'height': '14px',
                        indicator : 'Saving...',
                        tooltip : 'Doubleclick to edit...',
                        type       : "timepicker",
                        placeholder : '&nbsp;'
                    });
                }

                return nRow;
            },

            "sAjaxSource"   : "<?= $aSourceList; ?>/startdate/<?= $this->startdate; ?>"
        }
    );
    });
    $('.ui-datepicker-close').live('click', function (e){
        e.preventDefault();
        $('#scheduleTable tbody td input').parents("form").submit();
    });

$.editable.addInputType('timepicker',{
        /*create input element*/
        element:function(settings,orginal){
            var form = $(this),
            input = $('<input type="text">');
            form.append(input);
            return (input);
        },

        plugin:function(settings,original){

            /*Don't cancel inline editing onblur to allow clicking datepicker*/
            settings.onblur = 'nothing';
            $("input",this).filter(":text").timepicker(
            {   timeFormat: 'hh:mm',
                'hourMin':6,
                'hourMax':21,
                'showSecond': false,
                'hourGrid':2,
                'minuteGrid':10

            }
        );
        }
    });

1 Ответ

0 голосов
/ 06 февраля 2012

Я смог решить проблему. Главное, что я делал неправильно, было то, что у меня не было ответа json только с одним значением из моего действия на стороне сервера Zend Framework. что он не может поместить значение (ответ) как новое значение в элемент td. Надеюсь, что некоторые найдут это полезным мир!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...