2017-07-17 47 views
0

晚安我试图捕捉行cdesde一个CgridView我希望他们能帮助我有什么建议,我会很感激的ID,至于获取小部件的值的值CgridView

功能是调用其中CgridView位于

<script > 
function buscarArticulo() { 
window.open("../articulo/catInventario", "popupId", "location=no,menubar=no,titlebar=no,resizable=no,toolbar=no, menubar=no,width=500,height=500"); 
} 

</script> 

这是在弹出窗口的功能窗口:

<script language="javascript"> 
function cerrar(idarticulo) { 
window.opener.document.getElementById('idarticulo').value = <?php echo $model->idarticulo; //the new id ?> 
window.close(); 
} 
</script> 

这是CgridView部件:

<?php $this->widget('zii.widgets.grid.CGridView', array(
     'id'=>'catInventario-grid', 
     'dataProvider'=>$model->search(), 
     'filter'=>$model, 
     'columns'=>array(
       'idarticulo', 
       'codigo', 
       'nombre', 
       'descripcion', 
       'imagen', 
       'uso_interno', 
       /* 
       'idcategoria', 
       'idpresentacion', 
       'cod_impuesto', 
       */ 
       array(
         'class'=>'CButtonColumn', 
         'template'=>'{elegir}', 
         'buttons'=>array(
           'elegir'=>array(
             'click'=>'cerrar', 
             ), 

           ), 

       ), 
     ), 
)); ?> 

这是模型,其中,是完整的搜索

public function search() 
     { 


       $criteria=new CDbCriteria; 

       $criteria->compare('idarticulo',$this->idarticulo); 
       $criteria->compare('codigo',$this->codigo,true); 
       $criteria->compare('nombre',$this->nombre,true); 
       $criteria->compare('descripcion',$this->descripcion,true); 
       $criteria->compare('imagen',$this->imagen,true); 
       $criteria->compare('uso_interno',$this->uso_interno,true); 
       $criteria->compare('idcategoria',$this->idcategoria); 
       $criteria->compare('idpresentacion',$this->idpresentacion); 
       $criteria->compare('cod_impuesto',$this->cod_impuesto,true); 

       return new CActiveDataProvider($this, array(
         'criteria'=>$criteria, 
       )); 
     } 

搜索这是控制器功能:

public function actionCatInventario() 
     { 
       $model=new Articulo('search'); 
       $model->unsetAttributes(); // clear any default values 
       if(isset($_GET['Articulo'])) 
         $model->attributes=$_GET['Articulo']; 

       $this->render('catInventario',array(
         'model'=>$model, 
       )); 
     } 

当你意识到,它是一个网络的费用形式和为这个意义上我只需要idarticle,我希望已经清楚,他们可以帮助我,非常感谢你的时间

+0

'idarticulo'不是字段的id,而是属性的名称。请看看您的页面的html代码以获取真实ID – scaisEdge

+0

不,它是显示cgridview的代码。示例1,主持人 其中1是代码;这就是我需要的,我希望我解释得更好一点 –

+0

我不明白..我试图想象什么可以服务......你需要一个链接,当你点击你访问一个动作使用作为参数行字段? – scaisEdge

回答

0

我不确定,你到底需要什么。我假设你需要第一栏的价值。如果是的话(如果存在的jQuery在你的项目),你可以通过这个

function cerrar(idarticulo) { 
    console.log($(this).parent().parent().children('td:first').text()); 
} 

它返回CGridView的第一列的值,得到它。

+0

完美,我看到了标志中的正确价值。我问如何关闭窗口,并获得该值,因为我已经尝试,但它告诉我'未捕获的TypeError:window.opener不是函数' –

+0

完美,解决这个问题'window.opener.document.getElementById(' idarticulo')。value =($(this).parent()。parent()。children('td:first')。text()); window.close(); ' –