0

Q:cjuidialogboxからajax経由でデータを渡す方法は?

ステータス:cjuidialogboxでポップアップボックスを作成しました。ユーザーがポップアップボックスのcgridviewから顧客名を選択したら、顧客コードを渡してajax経由で機能させます。スタッキングはここにありますurl:\''。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,
        ),
    ),
)); ?>
4

1 に答える 1

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/

于 2012-12-18T09:25:57.990 に答える