Я использую Jeditable с Zend.
Большинство обновлений я хочу сделать с Jeditable.Таким образом, страница показывает информацию, и каждое поле редактируется с помощью Jeditable.Очень хорошо работает с «текстовыми» полями.
Вот проблема --- Именно с раскрывающимся списком у меня есть раскрывающийся список США.Jeditable show - это правильно, но поскольку это ajax-запрос, возникают две специфические проблемы
1) Показывает значение как ID, а не имя.Я думаю, что я могу обработать это от ответа сервера, чтобы отправить имя вместо ID, но я хотел бы сделать это на стороне клиента
2) После редактирования он теряет «выбранный» элемент.В идеале, он должен обновить «выбранный» элемент, так как он изменился.Если я обновлю страницу, все будет хорошо, потому что это будет свежий запрос, но я не буду этого делать.Вот и вся идея Ajax: -)
В идеале я хочу перехватить ответ от сервера и получить доступ к раскрывающемуся списку (данные JSON), показать метку для идентификатора состояния и динамически изменить данные Json наизменить выбранное значение для выпадающего списка.
Итак, как получить доступ и управлять данными Json на стороне клиента из Jeditable
, вот мой фрагмент кода
$('.edit_state').editable('/User/user/updprofile',
{ id : 'element_id',
name : 'new_value',
data : '<?php echo json_encode(array_merge($this->aStateIdOptions, array("selected" => $this->user->state_id))); ?>',
type : 'select',
submit : 'OK',
indicator : '<img width=14px height=14px src="/images/ui/ajax-spinner.gif">',
style : 'border: 0px',
onerror: function(settings, original, xhr) {
original.reset()
alert(xhr.responseText)
},
intercept: function (jsondata) {
obj = jQuery.parseJSON(jsondata);
alert(obj);
//alert(data);
// do something
return(obj);
},
callback : function(value, settings) {
console.log(this);
alert(this);
console.log(value);
alert(value);
console.log(settings);
alert(settings);
}
});