Как использовать Yahoo YUI для редактирования встроенных ячеек, которые записывают в базу данных? - PullRequest
0 голосов
/ 07 октября 2011

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

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

Ex.myDataTable.subscribe ("radioClickEvent", функция (oArgs) {

                    // hold the change for now
                    YAHOO.util.Event.preventDefault(oArgs.event);
                    // block the user from doing anything
                    this.disable();

                    // Read all we need
                    var elCheckbox = oArgs.target,
                        newValue = elCheckbox.checked,
                        record = this.getRecord(elCheckbox),
                        column = this.getColumn(elCheckbox),
                        oldValue = record.getData(column.key),
                        recordIndex = this.getRecordIndex(record),
                        session_code = record.getData(\'session_code\');
                    alert(newValue);

                    // check against server
                    YAHOO.util.Connect.asyncRequest(
                        "GET",
                        "inlineeddit.php?sesscode=session_code&", 
                        {
                            success:function(o) {
                                alert("good");
                                var r = YAHOO.lang.JSON.parse(o.responseText);
                                if (r.replyCode == 200) {
                                    // If Ok, do the change
                                    var data = record.getData();
                                    data[column.key] = newValue;
                                    this.updateRow(recordIndex,data);
                                } else {
                                    alert(r.replyText);
                                }
                                // unblock the interface
                                this.undisable();
                            },
                            failure:function(o) {
                                alert("bad");
                                //alert(o.statusText);
                                this.undisable();
                            },
                            scope:this
                        }

                    );                                              
                });

    Ex.myDataTable.subscribe("cellClickEvent", Ex.myDataTable.onEventShowCellEditor);    

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

Любые идеи будут с благодарностью.

...