【发布时间】:2011-05-09 03:14:29
【问题描述】:
我在 Zend 中使用 Jeditable。
大部分更新,我想使用 Jeditable。因此,页面显示信息,并且每个字段都可以使用 Jeditable 进行编辑。非常适用于“文本”字段。
这是问题 --- 它带有下拉列表 我有美国州下拉列表。 Jeditable show 是正确的,但是由于它是一个 ajax 请求,所以会出现两个具体问题
1) 它将值显示为 ID,而不是名称。我想,我可以从服务器响应发送名称而不是 ID 来处理它,但我想在客户端这样做
2) 编辑后它会丢失“选定”元素。理想情况下,它需要刷新“选定”元素,因为它已更改。如果我刷新页面,那会很好,因为这将是新的请求,但我不喜欢这样做。这就是 Ajax 的全部理念 :-)
理想情况下,我想拦截来自服务器的响应并希望访问下拉列表(JSON 数据)并显示状态 ID 的标签并动态更改 Json 数据以更改下拉列表的选定值。
那么如何从 Jeditable 在客户端访问和操作 Json 数据
这是我的代码 sn-p
$('.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);
}
});
【问题讨论】: