Ejemplo de .... Ajax?

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

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();

}



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 ??

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

Hola!! gracias por las respuestas

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

si tipoCarga=1

muestro

 [b]campo1[/b] 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 [color="#FF0000"]*[/color] (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

Hola comunidad

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

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

Aca les dejo un ejemplo de lo que hice

[color="#FF0000"]lo barato sale caro, este sitio esta INFECTADO!!![/color]

http://hsegura.mihost.eu/pruebaAjax/index.php?r=table/admin

saludos, espero les sirva a los newbie