Php yii:如何通过ajax从cjuidialogbox传递数据?

Php yii:如何通过ajax从cjuidialogbox传递数据?,php,yii,Php,Yii,问:如何通过ajax从cjuidialogbox传递数据 状态:我通过cjuidialogbox创建了一个弹出框。当用户从弹出框的cgridview中选择客户名称时,通过ajax将客户代码传递给function。我在这里 url:\''。Yii::app()->createUrl(“作业/getjobno”,数组(“c_代码”=>$data->c_代码”)。\, 帮我传递数据 这是一个对话框 <?php $this->beginWidget('zii.widgets.jui.CJu

问:如何通过ajax从cjuidialogbox传递数据

状态:我通过cjuidialogbox创建了一个弹出框。当用户从弹出框的cgridview中选择客户名称时,通过ajax将客户代码传递给function。我在这里 url:\''。Yii::app()->createUrl(“作业/getjobno”,数组(“c_代码”=>$data->c_代码”)。\, 帮我传递数据

这是一个对话框

<?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,
        ),
    ),
)); ?>
尝试以下方法:

<?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,
        ),
    ),
)); ?>
尝试以下方法:

<?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,
        ),
    ),
)); ?>

Try
$model->c_code
而不是
$data->c_code
如果我喜欢这个'$data->c_code',它是这样传递的&c_code=%24data-%3Ec_code尝试
$model->c_code
而不是
$data->c_code
,如果我喜欢这个'$data->c_code',它是这样传递的&c_code=%24data-%3Ec_code但我还有一个问题。它正在重定向到job/getjobno。实际上,我想要的是关闭对话框,客户代码将显示在job/create的文本框中。我该怎么办?我需要创建另一个问题吗?请单击函数
函数(事件){event.preventDefault();…}
并尝试,但我遇到了另一个问题。它正在重定向到job/getjobno。实际上,我想要的是关闭对话框,客户代码将显示在job/create的文本框中。我该怎么办?是否需要创建另一个问题?请单击函数
函数(事件){event.preventDefault();…}
,然后重试