hiscaler
(Hiscaler)
1
如下的语句不能执行。
array(
'name' => 'status',
'type' => 'raw',
'value' => 'CHtml::ajaxLink($data->statusIconFormat,
Yii::app()->controller->createUrl("posts/changeStatus"),
array(
"type" => "get",
"data" => "id=" . $data->id,
"dataType" => "text",
"update" => "#status{$data->id}",
),
array("id" => "status{$data->id}")
)'
),
此语句在不是 ajax 的情况下。会产生如下 js代码
jQuery(’#status1’).live(‘click’,function(){jQuery.ajax({‘type’:‘get’,‘data’:‘id=1’,‘dataType’:‘text’,‘url’:’/index.php?r=backend/posts/changeStatus’,‘cache’:false,‘success’:function(html){jQuery("#status1").html(html)}});return false;});
同时也可以正常更新。
如果是查询出来的数据,因为gridview 利用ajax处理数据,发现就不可以更新了。应该是 CHtml::ajaxlink 生成的js 语句并没有传入进来。
想这种情况怎么处理呢?
hiscaler
(Hiscaler)
3
已经这样搞定。
array(
'name' => 'is_picking',
'type' => 'raw',
'value' => 'CHtml::link($data->isPickingIconFormat, Yii::app()->controller->createUrl("changePicking",array("id"=>$data->id)), array("onclick" => "onToggleClick(\"picking_\" + $data->id); return false;", "id" => "picking_" . $data->id))'
),
JS代码
function onToggleClick(id) {
url = $('#' + id).attr('href');
$.ajax({
url: url,
success: function(html) {
$('#' + id).html(html);
}
});
return false;
}
hiscaler
(Hiscaler)
4
已经这样搞定。
array(
'name' => 'is_picking',
'type' => 'raw',
'value' => 'CHtml::link($data->isPickingIconFormat, Yii::app()->controller->createUrl("changePicking",array("id"=>$data->id)), array("onclick" => "onToggleClick(\"picking_\" + $data->id); return false;", "id" => "picking_" . $data->id))'
),
JS代码
function onToggleClick(id) {
url = $('#' + id).attr('href');
$.ajax({
url: url,
success: function(html) {
$('#' + id).html(html);
}
});
return false;
}
chriscao
(Labs Net)
5
array(
'name'=>'update',
'type'=>'raw',
'value' => 'CHtml::ajaxLink($data->update == 0?"No":"Yes", Yii::app()->controller->createUrl("changeUpdate",array("id"=>$data->id)), array("update" => "#update_$data->id"), array("id" => "update_" . $data->id))'
),
这样可以~~~