#javascript #yui #yahoo
#javascript #yui #yahoo
Вопрос:
Итак, у меня есть настройка datatable с использованием YUI 2.0. И для одного из моих определений столбцов я настроил его так, что при нажатии на ячейку появляется набор переключателей, чтобы вы могли изменять содержимое этой ячейки.
Я хочу, чтобы все внесенные изменения отражались в базе данных. Поэтому я подписываюсь на radioClickEvent. Вот мой код для этого:
Например.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_codeamp;",
{
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 в моем определении столбца, я полагаю, и я пробовал это, но у меня это тоже не сработало.
Любые идеи будут высоко оценены.
Комментарии:
1. Почему вы избегаете кавычек здесь:
record.getData('session_code');
?2. Этот код был написан как часть инструкции echo в php. Я мог бы поместить это в обычные кавычки, а также «session_code»
3. Одна вещь, которую я не упомянул в своем первоначальном сообщении, заключается в том, что если я просто для тестирования изменю «radioClickEvent» на «cellClickEvent», тогда моя подписка будет работать, и она попытается выполнить asyncrequest и т.д. Но с radioClickEvent (а также с checkboxClickEvent) ничего не работает. Я не уверен, что это вообще помогает.