问:如何通过cjuidialogbox中的ajax传递数据?
状态:我通过cjuidialogbox创建了一个弹出框。当用户从弹出框的cgridview中选择客户名称时,将客户代码传递给ajax。堆叠就在这里 网址:\''。 Yii :: app() - > createUrl(“job / getjobno”,array(“c_code”=> $ data-> c_code))。 '\', 帮我传递数据。
这是cjuidialog框
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>'customerlist',
'options'=>array(
'title'=>Yii::t('job','Customer List'),
'autoOpen'=>true,
'modal'=>'true',
'width'=>'750',
'height'=>'500',
),
));
echo $this->renderPartial('_listing', array('model'=>$model)); ?>
<?php $this->endWidget('zii.widgets.jui.CJuiDialog');?>
这是_listing.php
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'customer-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'customer_name',
array(
'class'=>'CButtonColumn',
'template'=>'{select}',
'buttons'=>array
(
'select' => array
(
'imageUrl'=>Yii::app()->request->baseUrl.'/protected/assets/images/gridview/icon_select.gif',
'options'=>array('style'=>'width:10px; border:none'),
'click'=>'function(){
var itemID = $(this).parents(\'tr\').find(\'.customer-id\').text();
//alert(itemID);
$.ajax({
url: \'' . Yii::app()->createUrl("job/getjobno", array("c_code" => $data->c_code)) . '\',
dataType: \'json\',
success: function(data){
var target = $(vNode).parents(\'tr\');
$("#Job_name").val(itemID);
//console.log(\'target tr: \' + target);
//$(target).find(\'.item-price\').val(data.item_price);
}
});
$("#customerlist").dialog("close");
}',
),
),
),
array(
'type'=>'raw',
'value'=>'$data->c_code',
//'filter'=>array('style'=>'visible:none'),
'headerHtmlOptions'=>array('style'=>'width:0px; display:none; border:none; textdecoration:none'),
'htmlOptions'=>array('style'=>'display:none; border:none;', 'class'=>'customer-id'),
'header'=>false,
'filter'=>false,
),
),
)); ?>
答案 0 :(得分:3)
尝试这种方式:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'customer-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'customer_name',
array(
'class'=>'CButtonColumn',
'template'=>'{select}',
'buttons'=>array
(
'select' => array
(
'url'=>'Yii::app()->createUrl("job/getjobno", array("c_code"=>$data->c_code))',
'imageUrl'=>Yii::app()->request->baseUrl.'/protected/assets/images/gridview/icon_select.gif',
'options'=>array('style'=>'width:10px; border:none'),
'click'=>'function(){
var itemID = $(this).parents(\'tr\').find(\'.customer-id\').text();
//alert(itemID);
$.ajax({
url:$(this).attr("href"),
dataType: \'json\',
success: function(data){
var target = $(vNode).parents(\'tr\');
$("#Job_name").val(itemID);
//console.log(\'target tr: \' + target);
//$(target).find(\'.item-price\').val(data.item_price);
}
});
$("#customerlist").dialog("close");
}',
),
),
),
array(
'type'=>'raw',
'value'=>'$data->c_code',
//'filter'=>array('style'=>'visible:none'),
'headerHtmlOptions'=>array('style'=>'width:0px; display:none; border:none; textdecoration:none'),
'htmlOptions'=>array('style'=>'display:none; border:none;', 'class'=>'customer-id'),
'header'=>false,
'filter'=>false,
),
),
)); ?>
参考文献:
1.http://www.yiiframework.com/wiki/410/create-custom-button-button-with-ajax-function-in-cgridview/
2.http://www.yiiframework.com/wiki/106/using-cbuttoncolumn-to-customize-buttons-in-cgridview/