Loading



 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
CJuiAutoComplete y TextLabel
17-08-2012, 07:19 PM
Mensaje: #1
CJuiAutoComplete y TextLabel

Hola a todos! Soy nuevo en la comunidad y en Yii, Llevo varios años programando en PHP Nativo y nunca había incursionado en los Frameworks.


Tengo una duda, estoy armando un Form en el que utilizo CJuiAutoComplete para buscar un artículo en el modelo de Articulo.
Quiero que luego de seleccionar el deseado, me guarde el Id del registro en un campo hidden del formulario.


1) ¿Es correcta la manera que estoy pensando el problema?
2) ¿Cuál sería la forma de hacerlo?


Les dejo los recortes de código:


_form.php

Código PHP:
<?php
        $this
->widget('zii.widgets.jui.CJuiAutoComplete', array(
            
'name'=>'articulo',
#            'value'=>'',
            
'source'=>$this->createUrl('articulo/autocomplete'),
            
// additional javascript options for the autocomplete plugin
            
'options'=>array(
                   
'showAnim' => 'fold',
                     
'minLength'=>'4',
            ),
        ));
    
?>
    </div>
    <?php echo $form->hiddenField($model,'articulo_id',array('size'=>10,'maxlength'=>10)); ?>


ArticuloController.php

Código PHP:
    public function actionAutocomplete() {
        
$res =array();

        if (isset(
$_GET['term'])) {
#            $model=Articulo::model()->findByAttributes(array('descripcion'=>'%'.$_GET['term'].'%'));
#            $res=$model->descripcion;
        
$qtxt ="SELECT id, descripcion FROM articulo WHERE descripcion LIKE :descripcion";
        
$command =Yii::app()->db->createCommand($qtxt);
        
$res =$command->query(array(":descripcion"=>'%'.$_GET['term'].'%'));
        }

        echo 
CJSON::encode($res);
        
Yii::app()->end();
    
    } 

QUOTE
18-08-2012, 06:31 AM (Este mensaje fue modificado por última vez en: 18-08-2012 06:35 AM por rmenor.)
Mensaje: #2
RE: CJuiAutoComplete y TextLabel

Es mucho más sencillo que todo eso.
Si te fijas en el código al poner ese widget te crea un input con el name que le hayas puesto, en tu caso articulo.
En el action create o update tendrás que capturar y asignar este input en el campo adecuado así:


Código PHP:
    $model->articulo $_POST['articulo']; 


Con eso ya tienes resulto no necesitas ni hidden ni javascript ni nada de nada.


Y si lo que quieres es el id pues buscas en la tabla de artículos a partir del resultado de $_POST['articulo']. Por ejemplo suponiendo que la clase del modelo se llama Articulos:

Código PHP:
$criteria = new CDbCriteria;
$criteria->compare('articulo'$_POST['articulo'], true);
$model_articulo Articulos::model()->find($criteria);
$id $model_articulo->id


Seguramente habrá otra forma más optima de buscar pero es la que ahora se me ocurre. Eso te lo dejo para tí.

QUOTE
18-08-2012, 12:16 PM
Mensaje: #3
RE: CJuiAutoComplete y TextLabel

Gracias por la respuesta!
Si lo del campo lo sé, voy a recibir el dato del nombre del artículo, pero necesito el Id o en su defecto en código EAN13, que son los único campos únicos que tiene la tabla.
Estos artículos pueden tener nombres duplicados y ser de distintas marcas por ejemplo. Quiero darle al usuario la posibilidad de buscar por EAN13 o por Nombre.


Así que identificar el articulo por el nombre no es la mejor solución en esta base de datos.


Saludos.

QUOTE
18-08-2012, 09:02 PM
Mensaje: #4
RE: CJuiAutoComplete y TextLabel

No lo entiendo porque si tienen nombres duplicados el autocomplete te sacará 2 nombres iguales, ¿cual elige el cliente? ¿de qué depende?. Si depende de otro dato sería incluirlo en el where de la consulta.
No se explicamelo un poco más o muestranos el modelo de datos para entenderlo mejor.

QUOTE
19-08-2012, 11:16 PM
Mensaje: #5
RE: CJuiAutoComplete y TextLabel

Hola gente, ya pude resolver el problema buscando correctamente.
La funcionalidad que necesitaba no está en Yii sino en JQuery.
Aquí en este post se explica bien:
http://www.yiiframework.com/forum/index....entry52157


Saludos.

QUOTE


Posibles temas similares...
Tema: Autor Respuestas: Vistas: Último mensaje
  Campo autocompletado con zii.widgets.jui.CJuiAutoComplete GGGGRoman 0 1,045 02-04-2013 05:54 AM
Último mensaje: GGGGRoman

Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Yii Framework en Español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS