Yii Framework Forum: Ejemplo de .... Ajax? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Ejemplo de .... Ajax? Rate Topic: -----

#1 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 03 June 2010 - 03:02 PM

Hola comunidad

espero me puedan dar una mano en esto ya que estoy en mis comienzos con todo esto
(un ejemplo o algún post que lo trate)


les comento

tengo una tabla con muchos campos,
pero no todos ellos son requeridos(obligatorios)
ésto lo determina un campo que es tipoCarga

si tipoCarga = 1
cargo campo 1 y 2
sinosi tipoCarga=2
cargo campo 3 y 4
etc

lo que pienso hacer es definir distintos escenarios para cada tipo de carga
y asi solo validar los campos correspondientes

mi problema pasa por la vista

supongo que tengo que usar ajax para cada vez que el usuario
seleccione (dropDownList) tipoCarga yo "envie" ese dato al controlador
y me haga un renderParcial de los datos correspondientes


ahora...

no se como hacerlo ! ;D


un ejemplo me vendría muy bien!!!!!

saludos y gracias
KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

#2 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 495
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 03 June 2010 - 03:08 PM

porque no probas de poner una función sobre el evento onchange de el combo y cuando cambia verificas y mostras o desmostras con JQuery.

Si tenés dos divs con adentro lo que querés mostrar:

if ($("combo").val()==3){
$("#div1").show();
$("#div2").hide();
}else{
$("#div1").hide();
$("#div2").show();
}

0

#3 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 03 June 2010 - 03:26 PM

Supongo que la validacion la quieres hacer del lado del servidor.. Otra idea entonces no te serviria hacer un CFormModel para escenario en el cual puedas especificar los campos requeridos.. y para validar utilices el metodo validate ??
Celestic Dev Team
Yii Open Source Project Manager
0

#4 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 03 June 2010 - 03:35 PM

Otra forma,

declara dos propiedades mas del modelo:

$campo_A
$campo_B

En el formulario haces que la entrada de los datos vaya a parar a esos campos,es decir renderizas SIEMRPE, esos campos (te olvidas del ajax dependiendo de la seleccion)
Luego, cuando guardas los datos, verificas el tipoCarga, si es 1, entonces pones
$campo1 = $campoA
$campo2 = $campoB

si en cambio es 2, pones
$campo3 = $campoA
$campo4 = $campoB

Despues, con scenario haces las validaciones...
Lo mismo harias para mostrar los datos (pero al reves obviamente)

Me explico?

Lo puedo hacer más detallado pero seria muy extenso
Don't say what you think, think what you say
The problem is communication! Excess of communication!
0

#5 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 03 June 2010 - 05:14 PM

Hola!! gracias por las respuestas

Replanteo el problema, porque me olvide de un tema NO menor:

si tipoCarga=1
muestro
campo1 y campo2
sinosi tipoCarga=2
muestro
campo1,campo3 y campo4

nota: * no siempre son la misma cantidad de campos
* un campo puede estar en varios escenarios

pero a su vez, uno de estos campos puede ser opcional (dependiendo del escenario)

por eso al hacer el renderParcial y usar CHtml::activeLabelEx debería tener el escenario seteado
para que me dibuje el * (de requerido) o no

yo usaría getSafeAttributeNames, para mostrar los campos

por eso creería que necesito ajax, porque tengo que cambiar el escenario y luego mostrar nuevamente los campos

saludos y gracias
KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

#6 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 12 July 2010 - 10:09 AM

Hola comunidad
les dejo lo que hice, se aceptan correcciones, soy nuevo en esto

Quote

tengo un campo "scenario" que me determina el escenario en el que estoy trabajando
a través de ajax hago un render parcial de los campos cada vez que se modifica el escenario

en mi ejemplo se definen 3 escenarios donde
* en el escenario1 el campo 1 y 2 son requeridos
* en el escenario2 el campo 1 y 3 son requeridos
* en el escenario3 el campo 2 es requerido y el campo 3 no es requerido, pero es parte del escenario



creo la tabla en la base
CREATE TABLE IF NOT EXISTS `tbl_table` (
  `id` int(11) NOT NULL auto_increment,
  `scenario` int(11) NOT NULL,
  `field1` int(11) default NULL,
  `field2` int(11) default NULL,
  `field3` int(11) default NULL,
  PRIMARY KEY  (`id`)
);



Uso el shell para crear el modelo y crud para los form
y despues modifique _form.php, el controlador y el modelo

adjunto los fuentes

[edit]
me había faltado ocultar nos campos no seguros

Attached File(s)


KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

#7 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 12 July 2010 - 01:26 PM

Aca les dejo un ejemplo de lo que hice

lo barato sale caro, este sitio esta INFECTADO!!!
http://hsegura.mihos...p?r=table/admin

saludos, espero les sirva a los newbie

Attached File(s)

  • Attached File  virus.bmp (61.87K)
    Number of downloads: 21

KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users