[Formularios y Jquery - AJAX]

90 views
Skip to first unread message

osinet

unread,
Sep 11, 2010, 5:53:21 PM9/11/10
to symfony-es
Buenas a todos los symfoneros!!!!

Tengo algunas dudas con respecto a formularios

Veran, cree un object_action como sigue:

object_actions:
_edit: ~
_delete:
confirm: 'Esta seguro de eliminar el registro?'
derivacion: { label: Derivar, action: derivar }

No hago mucho en la accion:

public function executeDerivar(sfWebRequest $request)
{
$this->caso_orientacion_juridica = $this->getRoute()->getObject();
$this->form = $this->configuration->getForm($this-
>caso_orientacion_juridica);
}

Pero en su Success:

<?php use_helper('I18N', 'Date') ?>
<?php include_partial('casos_solicitante/assets') ?>

<script>
$(document).ready(function(){
$('#tipo_derivacion').change(function(){
if($('#tipo_derivacion').val()==1)
{
getFormConciliacion("<?php echo url_for('derivacion_oj_c/new')?
>","carga_formulario");
}
});
});
</script>

<div id="sf_admin_container">
<h1>
<?php echo __('Derivar Caso de "%%nombre_completo_solicitante%%"',
array('%%nombre_completo_solicitante%%' => $caso_orientacion_juridica-
>getNombreCompletoSolicitante()), 'messages') ?>
</h1>
<div id="sf_admin_content">
<div class="adminform">
<table class="admintable" align="center" width="100%">
<tr>
<td colspan="2">
<fieldset id="sf_fieldset_none"></fieldset>
<td>
</tr>
<tr>
<td class="key"><label for="tipo_derivacion">Tipo de
Derivación</label></td>
<td>
<div class="content">
<select name="tipo_derivacion" id="tipo_derivacion"
style="width: 240px;">
<option value="" selected="selected">Seleccione un
tipo</option>
<option value="1">Derivar a Conciliación</option>
<option value="2">Derivar a Asesoramiento Legal</
option>
<option value="3">Derivar a Patrocinio</option>
</select>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>

<div id="carga_formulario"></div>

###################################
En la de success creo un campo y no asi un formulario... este campo de
tipo dropdown me sirve para seleccionar un tipo de derivacion.

Y aqui empieza mi duda... Como hago que se cargue un formulario de un
tipo de derivacion en el DIV que se le indique y asi que vaya
variando la carga de acuerdo a lo que seleccione en el dropdown.

Hasta el momento solo capturo el valor del dropdown mediante Jquery y
lo valido y si es de un tipo OJ_C llamo a la direccion
derivacion_oj_c/new osea a su action "new" y en esa clase se tiene la
siguiente accion:

class derivacion_oj_cActions extends autoDerivacion_oj_cActions
{
public function executeNew(sfWebRequest $request)
{
if (!$request->isXmlHttpRequest()){
$this->forward('inicio', 'index');
}
$this->form = $this->configuration->getForm();
$this->derivacion_ojc = $this->form->getObject();
}
}

Ahora lo que no se es como cargar el formulario como tal de manera que
pueda validar, guardar etc... solo para probar ese unico tipo de
validacion. Una ves conseguido eso podria replicar para el resto de
tipos de derivacion

Porfa alguien me podria ayudar?

Gracias
Saludos

osinet

unread,
Sep 12, 2010, 10:59:00 AM9/12/10
to symfony-es
Porfas si alguien sabe de alguna solucion o alguna otra alternativa
parecida a la que puse se lo agradeceria mucho

Thanks
Saludos

osinet

unread,
Sep 13, 2010, 8:46:17 PM9/13/10
to symfony-es
Holas

Aun sigo sin solucionar este problema.. porfa si alguien sabe de
alguna otra solucion se lo agradeceria mucho
Saludos

Joan Teixidó

unread,
Sep 14, 2010, 1:25:20 AM9/14/10
to symfo...@googlegroups.com
buenas,

cuando haces todo esto que dices... que es lo que no funciona?

2010/9/14 osinet <osine...@gmail.com>
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.


chus

unread,
Sep 14, 2010, 7:16:59 AM9/14/10
to symfony-es
no tengo muy claro lo que quieres hacer... pero mirate esto:
http://www.nacho-martin.com/formularios-empotrados-dinamicos-en-symfony

supongo que lo podras adaptar a tus necesidades

On 14 sep, 07:25, Joan Teixidó <j...@laiogurtera.com> wrote:
> buenas,
>
> cuando haces todo esto que dices... que es lo que no funciona?
>
> 2010/9/14 osinet <osinet.c...@gmail.com>
> > symfony-es+...@googlegroups.com<symfony-es%2Bunsubscribe@googlegrou ps.com>

osinet

unread,
Sep 14, 2010, 10:14:59 AM9/14/10
to symfony-es
Holas

Lo que quiero hacer es:

En el archivo derivarSuccess.php cree un campo de tipo select en
donde listo opciones las cuales me permitiran lo siguiente: si escojo
una opcion esta me cargue por medio de ajax y jquery un formulario
distinto para cada opcion en el DIV id="carga_formulario"...

Entonces hasta donde pude llegar es:

Enviar la solicitud a la accion del modulo para una determinada opcion
del select es decir : accion executeNew() de modulo: derivacion_oj_c
para cuando hago click en la primera opcion del select.

Capturo la solicitud en la accion executeNew() como sigue:

class derivacion_oj_cActions extends autoDerivacion_oj_cActions
{
public function executeNew(sfWebRequest $request)
{
if (!$request->isXmlHttpRequest()){
$this->forward('inicio', 'index');
}
$this->form = $this->configuration->getForm();
$this->derivacion_ojc = $this->form->getObject();
}
}
ahora lo que nose es como enviar el formulario $this->form y se
cargue en el DIV id="carga_formulario" de derivarSuccess.php

En realidad nose como enviar ese ojeto como respuesta a la solicitud
de manera que pueda redibujar ese formulario

Es posible esto o hay alguna otra alternativa para hacer lo que
describi... cargar formularios de distintos modulos de acuerdo a la
opcion seleccionada..

Si hay alguna opcion cual seria y si no tendria problemas despues de
mostrarlo es decir una ves mostrado llenado tener problemas al
guardarlo

Porfa llevo semanas con esto help me please

Saludos

Joan Teixidó

unread,
Sep 14, 2010, 10:31:13 AM9/14/10
to symfo...@googlegroups.com
buenas,

la verdad es que cuesta entender en que punto estás parado. Mirando tu código, vi que al cambiar el select tienes una funcion en javascript:


 getFormConciliacion("<?php echo url_for('derivacion_oj_c/new')?
>","carga_formulario");

entiendo que esto te carga en el div "carga_formulario" el form que llamas, no??? es este el problema? Què hace la funcion getFormConciliacion??? Tendría que hacer algo como:


javascript:
function getFormConciliacion(url)
{
  $('#carga_formulario").load(url)
}


esto es lo que no va???

Jaon

2010/9/14 osinet <osine...@gmail.com>

osinet

unread,
Sep 14, 2010, 11:11:58 AM9/14/10
to symfony-es
Hola Joan

En realidad con la funcion:

function getFormConciliacion(sfAction, idTrigger)
{
$.ajax({
url: sfAction,
success: function(data){
$("#"+idTrigger).html(data);
}
});
}

Me sirve para enviar una solicitud AJAX de Jquery de manera que le
envio el modulo y la accion "derivacion_oj_c/new" y el id
"carga_formulario" donde se debe cargar la respuesta.

Entonces cuando llamo a la accion New se trata del formulario para
insertar un nuevo registro del Modelo DerivacionOJC.

Por tanto, en la accion del modulo derivacion_oj_c:

class derivacion_oj_cActions extends autoDerivacion_oj_cActions
{
public function executeNew(sfWebRequest $request)
{
if (!$request->isXmlHttpRequest()){
$this->forward('inicio', 'index');
}

$this->form = $this->configuration->getForm();
$this->derivacion_ojc = $this->form->getObject();
}
}

Primero verifico que sea una peticion ajax, seguno obtengo la
configuracion de su formulario para insertar un nuevo registro. Ahora
mi duda es como enviar este objeto Formulario para que sea mostrado en
el DIV id="carga_formulario" del otro modulo inicial en su vista osea
el "derivarSuccess.php" ..

Es posible enviar ese objeto o no o hay otra forma de manera que pueda
mostrarlo llenarlo y guardarlo sin problemas y asi ir variando el tipo
de formulario que dependera de que opcion se seleccione

Saludos


On Sep 14, 10:31 am, Joan Teixidó <j...@laiogurtera.com> wrote:
> buenas,
>
> la verdad es que cuesta entender en que punto estás parado. Mirando tu
> código, vi que al cambiar el select tienes una funcion en javascript:
>
>  getFormConciliacion("<?php echo url_for('derivacion_oj_c/new')?
>
> >","carga_formulario");
>
> entiendo que esto te carga en el div "carga_formulario" el form que llamas,
> no??? es este el problema? Què hace la funcion getFormConciliacion???
> Tendría que hacer algo como:
>
> javascript:
> function getFormConciliacion(url)
> {
>   $('#carga_formulario").load(url)
>
> }
>
> esto es lo que no va???
>
> Jaon
>
> 2010/9/14 osinet <osinet.c...@gmail.com>
> > > > > symfony-es+...@googlegroups.com<symfony-es%2Bunsu...@googlegroups.com>
> > <symfony-es%2Bunsubscribe@googlegrou ps.com>
> > > > > Para tener acceso a más opciones, visita el grupo en
> > > > >http://groups.google.com/group/symfony-es?hl=es.
>
> > --
> > Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de
> > Grupos de Google.
> > Para publicar una entrada en este grupo, envía un correo electrónico a
> > symfo...@googlegroups.com.
> > Para anular tu suscripción a este grupo, envía un correo electrónico a
> > symfony-es+...@googlegroups.com<symfony-es%2Bunsu...@googlegroups.com>

osinet

unread,
Sep 14, 2010, 6:20:35 PM9/14/10
to symfony-es
Holas

No se si se pudo entender mi problema...

Help

Saludos
> ...
>
> read more »

Joan Teixidó

unread,
Sep 15, 2010, 1:44:51 AM9/15/10
to symfo...@googlegroups.com
sí... creo. Entiendo lo que quieres hace pero aún no entiendo el problema (o sea, no entiendo que es lo que no va, pq a mi me parece que haces las cosas correctamente). La accion executeNew te crea el form y el newSuccess te lo renderiza sin el layout, no? Por lo tanto, la acción devuelve al javascript el html correspondiente al form... y ya está no?

Joan



2010/9/15 osinet <osine...@gmail.com>
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages