Listas dependientes en symfony 1.2

Visto 252 veces
Saltar al primer mensaje no leído

Luis

no leída,
12 feb 2009, 17:33:0812/2/09
a symfony-es
Hola. ¿habra alguien que sepa como se maneja el tema de las listas
dependientes (pais, estado y ciudad) utilizando los formularios en la
version 1.2?
Ya he visitado http://symfoneando.blogspot.com/2007/09/crear-listas-dependientes-con...
pero no sé como se adaptaria a la codificacion que symfony escribe en
_form-php.
Si alguien pudiera hecharme una mano...

José Luis

no leída,
19 feb 2009, 11:13:4619/2/09
a symfony-es
Estoy en lo mismo, si encontraste la solución la puedes compartir?

On 12 feb, 17:33, Luis <Luis.Demi...@gmail.com> wrote:
> Hola. ¿habra alguien que sepa como se maneja el tema de las listas
> dependientes (pais, estado y ciudad) utilizando los formularios en la
> version 1.2?
> Ya he visitadohttp://symfoneando.blogspot.com/2007/09/crear-listas-dependientes-con...

Luis

no leída,
20 feb 2009, 18:50:3520/2/09
a symfony-es
Un integrante del foro me sugirio el sfJqueryWidgetsPlugin-0.1.0. Pero
no veo un tutorial detallado del tema y yo todavia soy un poco verde
para esto. Si le encontras la vuelta...

Jose Luis Vicente Cababllero

no leída,
2 mar 2009, 12:31:092/3/09
a symfo...@googlegroups.com
No encuentro aun la solución, si tienes algo compartelo, estoy en esto dos semanas y la verdad que no logro hacerlo aun

Sebastian M

no leída,
2 mar 2009, 12:55:382/3/09
a symfony-es
Yo uso la clase Form para mis formularios, nunca pude hacer listas
dependientes con los widgets, pero lo logre hacer con los objetos
select_tag.
La duda que nos entra a muchos es como guardar la informacion de esos
select_tag en el form que se envia para guardar en base de datos, esto
lo logre en el metodo updateObject de la clase Form, aca recupero esos
valores y nuevande los asigno al objeto form y son guardados
normalmente. Si lo quieren de esta manera me avisan.

Saludos
Sebas M ( www.inqbo.net )

On 2 mar, 12:31, Jose Luis Vicente Cababllero <josevc1...@gmail.com>
wrote:

Jose Luis Vicente Cababllero

no leída,
2 mar 2009, 13:25:542/3/09
a symfo...@googlegroups.com
Lo que deseaba era hacerlo con widgets, por lo visto no es posible, podrias damr las pautas de como hacerlo con la clase form, tal como lo explicas. Se te agradece.

Damian Suarez

no leída,
2 mar 2009, 16:10:222/3/09
a symfo...@googlegroups.com


2009/3/2 Jose Luis Vicente Cababllero <josev...@gmail.com>

Lo que deseaba era hacerlo con widgets, por lo visto no es posible, podrias damr las pautas de como hacerlo con la clase form, tal como lo explicas. Se te agradece.




Hasta el momento no hay widget que hagan selects dependientes[0]. Lo podes hacer a manopla en el action de tu módulo o hacer tu propio widget. Yo hace poco hice un que agrega un botonsito de add a un select en una relacion 1-n.


[0] http://www.symfony-project.org/book/forms/1_2/en/A-Widgets

--
www.cabezaderaton.com.ar

Sebastian M

no leída,
9 mar 2009, 9:48:149/3/09
a symfony-es
Saludos q pena la demora en la respuesta, realmente segui estos
tutoriales al pie de la letra:

http://symfoneando.blogspot.com/2007/08/crear-listas-dependientes-con-ajax-en.html
http://symfoneando.blogspot.com/2007/09/crear-listas-dependientes-con-ajax-en.html

On 2 mar, 16:10, Damian Suarez <rdsua...@gmail.com> wrote:
> 2009/3/2 Jose Luis Vicente Cababllero <josevc1...@gmail.com>

Luis

no leída,
10 mar 2009, 18:19:5710/3/09
a symfony-es
Che, y ¿esto funciona en la version 1.2?.

On 9 mar, 10:48, Sebastian M <sebastian.mejia.r...@gmail.com> wrote:
> Saludos q pena la demora en la respuesta, realmente segui estos
> tutoriales al pie de la letra:
>
> http://symfoneando.blogspot.com/2007/08/crear-listas-dependientes-con...http://symfoneando.blogspot.com/2007/09/crear-listas-dependientes-con...

Joan Teixidó

no leída,
10 mar 2009, 18:39:1710/3/09
a symfo...@googlegroups.com
buenas... y en vez de tanta complicacion con los componentes, no podeis llamar por ajax a una acción q devuelva los nuevos valores del option y sustituir los que ya hay?? eso no serviria??? o sea:

<select id='micampo'><option value='1'>valor1</option><option value="2">valor2</option></select>

una llamada a Ajax a través de una funcion o un evento:

remote_function(array(
  'url' => 'cambiarValoresCombo',
  'update' => 'micampo',

));

En la acción: public function executeCambiarValoresCombo
{
  //el código que sea q devuelva nuevos options
  $options = "<option value=3>Nuevo valor del combo</option>";
  return $this->renderText($options);
}

Eso funciona, no??

Joan

2009/3/10 Luis <Luis.D...@gmail.com>

Sebastian M

no leída,
10 mar 2009, 19:08:1710/3/09
a symfony-es
Si funciona en symfony 1.2.2

On 10 mar, 17:39, Joan Teixidó <eliog...@gmail.com> wrote:
> buenas... y en vez de tanta complicacion con los componentes, no podeis
> llamar por ajax a una acción q devuelva los nuevos valores del option y
> sustituir los que ya hay?? eso no serviria??? o sea:
>
> <select id='micampo'><option value='1'>valor1</option><option
> value="2">valor2</option></select>
>
> una llamada a Ajax a través de una funcion o un evento:
>
> remote_function(array(
>   'url' => 'cambiarValoresCombo',
>   'update' => 'micampo',
>
> ));
>
> En la acción: public function executeCambiarValoresCombo
> {
>   //el código que sea q devuelva nuevos options
>   $options = "<option value=3>Nuevo valor del combo</option>";
>   return $this->renderText($options);
>
> }
>
> Eso funciona, no??
>
> Joan
>
> 2009/3/10 Luis <Luis.Demi...@gmail.com>
>
>
>
> > Che, y ¿esto funciona en la version 1.2?.
>
> > On 9 mar, 10:48, Sebastian M <sebastian.mejia.r...@gmail.com> wrote:
> > > Saludos q pena la demora en la respuesta, realmente segui estos
> > > tutoriales al pie de la letra:
>
> >http://symfoneando.blogspot.com/2007/08/crear-listas-dependientes-con....
> > ..

Alberto

no leída,
5 abr 2009, 17:18:495/4/09
a symfony-es
Esa guia esta enfocada para modulo generado por propel para el admin,
pero funcionaria igual en la parte publica de la pagina?, el
formulario con symfony 1.2 se imprime solo con <?php echo $form ?>
como lo encajaria?
con este widget http://sandbox-ws.com/sfjquerywidgetsplugin puede
resolverse?

Pedro Amador Rodrguez Álvarez

no leída,
13 abr 2009, 3:42:5413/4/09
a symfo...@googlegroups.com
Vengo algo tarde, pero vengo... :)

El plugin va perfectamente, recientemente lo he usado para seleccionar país/provincia/localidad. Simplemente hay que crear la acción ajax, como se indica en el readme del plugin.

En el caso de país/provincia/localidad que he implementado, yo uso el admin generator y los desplegables de país y provincia los sitúo en el parcial "_form_header.php", dado que el único campo que pertenece a la tabla "cliente" es el campo localidad_id; hago que el desplegable "País"  modifique al desplegable "Provincia", y que "Provincia" a su vez modifique "Localidad"

Para mantener la midma estética del admin generator, en el parcial pongo:
<fieldset id="datos_seleccion">
  <h2><?php echo __('Select') ?></h2>
  <div class="sf_admin_form_row">
    <div>
      <?php echo $form['pais_id']->renderLabel() ?>
      <?php echo $form['pais_id'] ?>
    </div>
  </div>
  <div class="sf_admin_form_row">
    <div>
      <?php echo $form['provincia_id']->renderLabel() ?>
      <?php echo $form['provincia_id'] ?>
    </div>
  </div>
</fieldset>

En la acción "new" y "edit" del cliente (también se podría poner en el método configure de lib/form/ClienteForm.class.php), después de crear el formulario:

    // Añadir widgets con drop downs de salto
    $form->setWidget('pais_id',
      new sfWidgetFormPropelSelectAjax(array(
      'model' => 'Pais',
      'method' => 'getNombre',
      'url' => 'provincia/provincias',
      'update' => 'cliente_provincia_id',
      'label' => 'País',
      'update_element' => 'select'
    )));
    $form->setWidget('provincia_id',
      new sfWidgetFormPropelSelectAjax(array(
      'model' => 'Provincia',
      'method' => 'getNombre',
      'url' => 'localidad/localidades',
      'update' => 'cliente_localidad_id',
      'label' => 'Provincia',
      'update_element' => 'select'
    )));

Por último, en las acciones del módulo "provincia" añadimos:
  public function executeProvincias(sfWebRequest $request)
  {
    $pais = PaisPeer::retrieveByPK($request->getParameter('id'));
    foreach ($pais->getProvincias() as $provincia) {
      $this->renderText('<option value="'.$provincia->getId().'">'.$provincia->getNombre().'</option>');
    }
    return sfView::NONE;
  }


y en las acciones del módulo "localidad":
  public function executeLocalidades(sfWebRequest $request)
  {
    $provincia = ProvinciaPeer::retrieveByPK($request->getParameter('id'));
    foreach ($provincia->getLocalidads() as $localidad) {
      $this->renderText('<option value="'.$localidad->getId().'">'.$localidad->getNombre().'</option>');
    }
    return sfView::NONE;
  }

Creo que no me he dejado nada... con esas 3 cosas funcionarían sin problemas las listas dependientes, en este caso de 3 elementos.

De todas formas me interesa el asunto, esta forma de resolverlo, aunque correcta, no me parece práctica. ¿Y si en uno de los desplegables tienes cientos, o miles de registros, o cientos de miles de registros?

¿Alguien lo ha resuelto de otra forma y no le importa compartirlo?


2009/4/5 Alberto <Spin...@gmail.com>

Alberto

no leída,
13 abr 2009, 19:42:1413/4/09
a symfony-es
hola, primero que todo, gracias por compartir esta solucion con todos,
mas de uno estamos intentado resolver esto
segundo

cuando intento instalar el plugin via...
php symfony plugin:install sfJqueryWidgetsPlugin
y me proce error
No release available for plugin "sfJqueryWidgetsPlugin" in state
"stable"

lo descomprimi a mano en la carpeta plugins y luego ejecute
php symfony plugin:publish-assets
pero nada.

otra duda, en la opcion update se relaciona al parcial?
'update' => 'cliente_provincia_id',

voy a aplicar esto pero no en un modulo generado para el
administrador, es para un modulo publico
seguire probandolo, gracias!


On 13 abr, 02:42, Pedro Amador Rodrguez Álvarez <prodrig...@disc-
> 2009/4/5 Alberto <Spin....@gmail.com>

Pedro Amador Rodrguez Álvarez

no leída,
14 abr 2009, 2:19:4614/4/09
a symfo...@googlegroups.com
Para instalar el plugin, como no hay versión estable todavía, tienes que indicarle que instale la beta (ojo! no pongas -s="beta" como indica en la ayuda, no funciona, pon -sbeta o -s"beta"):
php symfony plugin:install sfJqueryWidgetsPlugin -sbeta

El update indica qué elemento se va a actualizar en tu página. Si te fijas en el código fuente de la página generada, el desplegable tiene un id, que es el que tienes que poner en el update. En mi caso es:

<select name="cliente[provincia_id]" id="cliente_provincia_id">
<option>...
...
</select>

Ni que decir tiene que la solución es perfectamente válida para un módulo del admin generator como para cualquier otro tipo de módulo...

Suerte,
Pedro.

P.D. Insisto en la pregunta: ¿qué otras soluciones habéis implantado para solucionar listas dependientes, o tablas n-m, o relaciones múltiples?

El ID que utilizo es "cliente_provincia_id", pero puede ser cualquier otra cosa.


2009/4/14 Alberto <Spin...@gmail.com>

Alberto

no leída,
14 abr 2009, 12:24:3514/4/09
a symfony-es
Bueno, ya lo se instalo correctamente, eso dice

ejecute
php symfony plugin:install sfJqueryWidgetsPlugin -sbeta
php symfony cc
php symfony plugin:publish-assets
>> plugin Configuring plugin - sfPropelPlugin
>> plugin Configuring plugin - sfGuardPlugin
en la carpeta plugins esta y en web tambien, sus respectivos js

pero al ejecutarlo me produce el siguiente error
Fatal error: Class 'sfWidgetFormPropelSelectAjax' not found in .../
sfprojects/contratos/lib/form/ContratoProponenteForm.class.php on line
23

es como si no se encontrara,

regenere modelos y formularios...

lo tengo configurado en el formulario de esta manera

$this->widgetSchema['departamento_id'] = new
sfWidgetFormPropelSelectAjax(array(
'model' => 'ContratoDepartamento',
'method' => 'getNombre',
'url' => 'municipio/municipios',
'update' => 'contrato_proponente_municipio_id',
'label' => 'Departamento',
'update_element' => 'select'
));

la primera ves que estube probando , antes de seguir vuestra guia no
me producia ese error, solo una exepcion de symfony debido a que
estaba probando el plugin y tenia algo mal xD
ya tengo un poco mas claro su funcionamiento gracias a vuestra guia
pero ahora tengo este problema que puede ser algo que pase por alto.

otra duda, no necesitare usar el partial en este caso o si?
tengo la accion similar que en la guia en mi caso es ContratoMunicipio

existe esta otra guia
http://rafaelmejiasc.blogspot.com/2009/04/combos-anidados-con-ajax-en-symfony.html
pero sin widgets

en mi caso los registros son pocos asi que considero que el plugin
encaja en lo que necesito.

gracias compartir esta informacion, como lo dije anteriormente va a
desbarar a mas de uno

saludos


On 14 abr, 01:19, Pedro Amador Rodrguez Álvarez <prodrig...@disc-
order.com> wrote:
> Para instalar el plugin, como no hay versión estable todavía, tienes que
> indicarle que instale la beta (ojo! no pongas -s="beta" como indica en la
> ayuda, no funciona, pon -sbeta o -s"beta"):
> php symfony plugin:install sfJqueryWidgetsPlugin -sbeta
>
> El update indica qué elemento se va a actualizar en tu página. Si te fijas
> en el código fuente de la página generada, el desplegable tiene un id, que
> es el que tienes que poner en el update. En mi caso es:
>
> <select name="cliente[provincia_id]" id="cliente_provincia_id">
> <option>...
> ...
> </select>
>
> Ni que decir tiene que la solución es perfectamente válida para un módulo
> del admin generator como para cualquier otro tipo de módulo...
>
> Suerte,
> Pedro.
>
> P.D. Insisto en la pregunta: ¿qué otras soluciones habéis implantado para
> solucionar listas dependientes, o tablas n-m, o relaciones múltiples?
>
> El ID que utilizo es "cliente_provincia_id", pero puede ser cualquier otra
> cosa.
>
> 2009/4/14 Alberto <Spin....@gmail.com>

Alberto

no leída,
14 abr 2009, 17:20:0514/4/09
a symfony-es
eh listado los plugins instalados en el cli de php y aparece como
instalado, tambien lo active en enabled_modules para descartar esa
posibilidad y tampoco, es raro
> existe esta otra guiahttp://rafaelmejiasc.blogspot.com/2009/04/combos-anidados-con-ajax-en...
> ...
>
> leer más »

Alberto

no leída,
14 abr 2009, 19:06:1214/4/09
a symfony-es
ya lo resolvi, habia olvidado activarlo en la configuracion del
proyecto.
> ...
>
> leer más »

Alberto

no leída,
14 abr 2009, 21:32:2414/4/09
a symfony-es
bueno, funciono, estaba muy contento cuando me dio por probar en un
windows con ie y no funciona, es un bug de ie?
> ...
>
> leer más »

Pedro Amador Rodrguez Álvarez

no leída,
15 abr 2009, 2:08:3415/4/09
a symfo...@googlegroups.com
Tienes toda la razón: no funciona en IE (al menos en la 7)

Lo revisaré, a ver si encuentro qué está pasando.... si das con la solución, compártelo :)

2009/4/15 Alberto <Spin...@gmail.com>

Puentes Diaz, Roberto G.

no leída,
15 abr 2009, 7:55:0115/4/09
a symfony-es
Quien se anima a hacer un minitutorial???

una test podria ser
pais > provincia > ciudad

Pedro Amador Rodrguez Álvarez

no leída,
15 abr 2009, 9:22:2915/4/09
a symfo...@googlegroups.com
Yo mismo, por ejemplo.

Además, tengo curiosidad por saber qué pasó con el IE. Aunque por temas que no vienen al caso (sobrecarga de tareas), voy a tardar un poco... pero me lo apunto.

Lo propio es hacer desde cero todo, ¿verdad? Es decir: schema, creación de módulos (con / sin admin generator) , instalación y configuración de plugins, todo detalladamente, ¿no?

2009/4/15 Puentes Diaz, Roberto G. <puent...@gmail.com>

Pedro Amador Rodrguez Álvarez

no leída,
15 abr 2009, 11:12:3415/4/09
a symfo...@googlegroups.com
Cazado.. uffff......

Si te fijas en el código HTML generado por sfWidgetFormPropelSelectAjax:

</select><script type="text/javascript" charset="utf-8">
  jQuery('#version_maquina_version_id').change(function(event){
    jQuery.ajax({
      type:        'POST',
      dataType:    'html',
      url:         '/version_maquina/datosmaquina/action?maquina=1',
      data:        "id="+jQuery('#'+event.target.id).val(),
      success:
        function(data, textStatu)
        {
          jQuery('#datosmaquina').html(data);
        },
    })
  });
</script>        </div>

en la función
        function(data, textStatu)
        {
          jQuery('#datosmaquina').html(data);
        },   <= ¡AQUÍ HAY UNA COMA!

¿por qué? Pues en el plugin se añade de forma incorrecta.

Sin esa coma coma funciona perfectamente tanto en IE como en FF. Con la coma, en FF va bien, pero en IE se produce un error de javascript "Se esperaba un identificador, una cadena o un número"

¿Cómo solucionarlo?
Una posible solución es, en el plugin, en la funcion "render" de sfWidgetFormPropelSelectAjax.class.php, modificar, a partir de la línea 151
        function(data, textStatu)
        {
          jQuery('#%s').html(data);
        },%s
y poner
        function(data, textStatu)
        {
          jQuery('#%s').html(data);
        }%s

a la vez que añadimos un poco de código, a partir de la línea 121:

    $optional .= sfJQueryUtilities::getCompleteOption($this->getOption('complete'));
    $optional .= sfJQueryUtilities::getBeforeSendOption($this->getOption('beforeSend'));
    $optional .= sfJQueryUtilities::getErrorOption($this->getOption('error'));
    /* Código añadido */
    if ($optional != '') {
      $optional = "," . $optional;
    }

De esta forma funcionará en IE y en FF. Es cutre, pero es una solución.

En finx, si quieres pruébalo y me cuentas cómo te fue. A mí al menos me funciona, y lo he probado con IE7, FF3, Epiphany y Galeon


2009/4/15 Alberto <Spin...@gmail.com>

williams

no leída,
15 abr 2009, 15:19:0915/4/09
a symfo...@googlegroups.com
Yo tuve que hacer mis selects dependientes manualmente por todos estos errores y la rapidéz con que estaba, y gracias a esa rapidéz encontré esto:

El problema que ustedes dicen

http://ingetec.com.es/index.php/problema-con-innerhtml-en-internet-explorer/

Williams Rivas


--- El mié 15-abr-09, Pedro Amador Rodrguez Álvarez <prodr...@disc-order.com> escribió:

De: Pedro Amador Rodrguez Álvarez <prodr...@disc-order.com>
Asunto: [symfony-es] Re: Listas dependientes en symfony 1.2
A: symfo...@googlegroups.com
Fecha: miércoles, 15 abril, 2009, 3:08 am

Tienes toda la razón: no funciona en IE (al menos en la 7)

Lo revisaré, a ver si encuentro qué está pasando.... si das con la solución, compártelo :)




¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8.br> http://downloads.yahoo.com/ieak8/?l=e1

Puentes Diaz, Roberto G.

no leída,
17 abr 2009, 10:57:4817/4/09
a symfony-es


On 15 abr, 10:22, Pedro Amador Rodrguez Álvarez <prodrig...@disc-
order.com> wrote:
> Yo mismo, por ejemplo.
>
> Además, tengo curiosidad por saber qué pasó con el IE. Aunque por temas que
> no vienen al caso (sobrecarga de tareas), voy a tardar un poco... pero me lo
> apunto.
>
> Lo propio es hacer desde cero todo, ¿verdad? Es decir: schema, creación de
> módulos (con / sin admin generator) , instalación y configuración de
> plugins, todo detalladamente, ¿no?

No seria mala idea

pais:
id: ~
nombre: { type: varchar(255), required: true }
codigo: { type: varchar(255), required: true }
prefijo: { type: varchar(255) }

provincia: # pertenece a un pais
id: ~
nombre: { type: varchar(255), required: true }
codigo: { type: varchar(255) }
pais_id: ~

ciudad: # pertenece a un provincia
id: ~
nombre: { type: varchar(255), required: true }
provincia_id: ~

podria ser un esquema ?

Alberto

no leída,
17 abr 2009, 15:57:4317/4/09
a symfony-es
Si funciona en IE y otros con los cambios en el plugin, puedes
actualizar ese plugin, subir la solucion para que lo bajen mas
funcional
ese schema aplica
alguien ya tiene desarrollado una miniguia? tambien tengo pensado
hacerla pero estoy corto de tiempo, tal ves mañana

saludos

On 17 abr, 09:57, "Puentes Diaz, Roberto G." <puentesd...@gmail.com>
wrote:

williams

no leída,
17 abr 2009, 16:28:1517/4/09
a symfo...@googlegroups.com
Por fa el que lo tenga listo, que pase la guía, así si me cambio. Para tener todos mis formularios bien hechos y siguiendo los estandares.

De verdad, se los agradecería y si tienen los scripts de pais,estados,ciudad seria de gran ayuda. Yo conseguí los de pais,estado pero no siguen los estandares de la iso

Williams Rivas


--- El vie 17-abr-09, Alberto <Spin...@gmail.com> escribió:

De: Alberto <Spin...@gmail.com>
Asunto: [symfony-es] Re: Listas dependientes en symfony 1.2

Pedro Amador Rodrguez Álvarez

no leída,
18 abr 2009, 1:15:3718/4/09
a symfo...@googlegroups.com
Es un buen esquema. Aunque para acabar de remaarlo, podría ser:


pais:
  id: ~
  nombre:             { type: varchar(255), required: true }
  codigo:             { type: varchar(255), required: true }
  prefijo:    { type: varchar(255) }

provincia:                      # pertenece a un pais
  id: ~
  nombre:             { type: varchar(255), required: true }
  codigo:             { type: varchar(255) }
  pais_id:    ~

ciudad:                 # pertenece a un provincia
  id: ~
  nombre:     { type: varchar(255), required: true }
  provincia_id:       ~

ciudad:                
  id: ~
  nombre:     { type: varchar(255), required: true }
  ciudad_id:       ~

por ejemplo.

De esta forma se tendrían 3 desplegables, dos de ellos actualizados dinámicamente.

En serio que es falta de tiempo, no falta de ganas, lo que me impide desarrollar una pequeña guía ya. Pero lo haré, seguro. A ver si la semana que viene saco un rato...

2009/4/17 Puentes Diaz, Roberto G. <puent...@gmail.com>

Pedro Amador Rodrguez Álvarez

no leída,
22 abr 2009, 4:27:0622/4/09
a symfo...@googlegroups.com
Buenas,

os adjunto un parche que corrige el problema del plugin.

Usando linux, para aplicarlo, desde el directorio raíz del proyecto:
patch -p0 < sfJqueryWidgetsPlugin.FixMalformedJS.patch

Si tenéis windows, se puede uar "patch" a través de cygwin, de la misma forma que en linux: raíz del proyecto y
patch -p0 < sfJqueryWidgetsPlugin.FixMalformedJS.patch

Si tenéis MAC, no tengo ni idea, supongo que habrá un "patch" para OSX.

Sigo teniendo pendiente desarrollar el tutorial, pero sigo con graves problemas de tiempo (no tengo ni pa' jurar en hebreo)... ¿seguís interesados en que haya un tuto al respecto?

Salud,
Pedro.

P.D. Estoy muy contento, gracias a esto he aprendido a hacer parches ^^)

2009/4/18 Pedro Amador Rodrguez Álvarez <prodr...@disc-order.com>
sfJqueryWidgetsPlugin.FixMalformedJS.patch

williams

no leída,
22 abr 2009, 12:15:0622/4/09
a symfo...@googlegroups.com
Buenas,
Ese adjunto lo pego en la carpeta raiz del proyecto y luego hago por la consola lo que decis?
 
PD: Siiiiiiiiiiiiiiiiiii queremos el tuto. Al menos yo por fa

Williams Rivas


--- El mié 22-abr-09, Pedro Amador Rodrguez Álvarez <prodr...@disc-order.com> escribió:

De: Pedro Amador Rodrguez Álvarez <prodr...@disc-order.com>
Asunto: [symfony-es] Re: Listas dependientes en symfony 1.2
¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8

Pedro Amador Rodrguez Álvarez

no leída,
22 abr 2009, 12:26:3122/4/09
a symfo...@googlegroups.com
Efectivamente, así funciona la aplicación del parche. A todo esto, el parche "reversible", es decir, si lo aplicas por segunda vez tienes el código fuente original (con el bug :P )

En cuanto saque un hueco lo hago... tal vez la semana que viene (sorry).

2009/4/22 williams <william...@yahoo.com>

Roiman Ramos

no leída,
23 abr 2009, 14:24:0823/4/09
a symfony-es
yo use el plugin... funciona bien.. (no lo probe con IE), pero tenia
un problema.. la momento de generar un nuevo registro, ej. persona me
tiene q listar estados, municipios y parroquias y en la tabla persona
solo tengo parroquia_id.. ese caso de crear un nuevo registro funciona
bien.. lo unico es q al inicio carga las 3 listas con todos los
valores (hace un criteria de la clase y trae todos los valores), ese
es uno de los detalles... el otro detalle es al hacer modificaciones a
ese registro de la persona... las listas no las recarga dependiendo
del ultimo combo(parroquia), o al menos a mi no me lo hizo... lo q
creo q deberia hacer desde un inicio es listar solamente el combo de
estados y los otros combos en blanco.. y al momento de llamar al
template edit, cargar los combos estado y municipio, dependiendo de la
parroquia... pero no pude hacer q hiciera esto solamente usando el
plugin...

lo q hice fue tomar parte del codigo generado en el template del
jQuery y modificarlo para q me funcionara para 3 combos
unicamente.. :S ..creo q no es la mejor manera de resolver esto.. pero
con esta modificacion y otras cositas mas hice q funcionara como creo
q deberia funcionar.. listando solamente estados y las otras 2 listas
en blanco... luego de seleccionar estado se carga municipio y luego al
seleccionar municipio actualizar parroquia... y para la parte de
edicion cargo las listas dependiendo de la parroquia de la persona...
ya lo hice, estoy todavia depurando un ejemplo.. pero creo q puedo
subir al grupo el ejemplo q hice, claro luego de depurar algunas
cosas... lo q hice funciona.. pero creo q el plugin deberia gestionar
mas cosas de las q hace ahora... pero no se.. quizas hoy en la tarde o
mañana puedo subir algo..

Pedro Amador Rodrguez Álvarez

no leída,
24 abr 2009, 3:38:5624/4/09
a symfo...@googlegroups.com
Efectivamente, el plugin no hace todo eso. Tan sólo está pensado para tener un widget que llame a través de ajax a una acción y que mofique un elemento, no más.

El resto hay que desarrollarlo dependiendo de las necesidades, el caso de los 3 combos que comentas también me todca que resolverlo ahora... tengo algunas ideas, algunas cosas funcionan, pero no estaría de más desarrollar algo genérico en forma de plugin que utilice a su vez sfJqueryWidgetsPlugin.

Por mi parte sigo investigando, según vaya teniendo cosas concretas os lo iré poniendo por acá, ¿alguien más se anima?

2009/4/23 Roiman Ramos <ramos...@gmail.com>

Jose Mojena Alpizar

no leída,
24 abr 2009, 14:01:1424/4/09
a symfo...@googlegroups.com
yo lo hice pero con los helper de formularios, es decir con select_tag() y en el evento onchange le puse la funcion remote_function con todos los parametros que se deben poner(url, select a actualizar) y me pincha de maravilla.
winmail.dat

williams

no leída,
24 abr 2009, 17:46:0924/4/09
a symfo...@googlegroups.com


Williams Rivas


--- El vie 24-abr-09, Jose Mojena Alpizar <jmo...@estudiantes.uci.cu> escribió:

De: Jose Mojena Alpizar <jmo...@estudiantes.uci.cu>
Asunto: [symfony-es] Re: Listas dependientes en symfony 1.2
A: symfo...@googlegroups.com

Roiman Ramos

no leída,
27 abr 2009, 10:25:3327/4/09
a symfony-es
Saludos.. ya termine un proyecto de ejemplo para listas
dependeintes... lo unico es q solo para 3 niveles..
el ejemplo esta para estado, municipio, parroquia...
se tiene q modificar unicamente la parte de salvar los datos.. dado q
la tabla persona solo tiene el el id de la parroquia y la aplicacion
intenta insertar estado y municipio... del resto funciona calidad...

mande un correo al grupo (symfo...@googlegroups.com) con el proyecto
en .ZIP de esta forma se suben los archivos???

bueno... el archivo se llama ListasDependientes.zip y contiene el
proyecto (sin la carpeta sf, ya q es un link simbolico) un .sql con
los datos para estado municipio y parroquia y un .txt donde explico
como hacer para q funcione.. todo esto utilizando lo q otros han dicho
en esta lista... espero les funcione.. si tienen dudas o mejor, si
quieren agregar algo estare pendiente...

Roiman Ramos

no leída,
27 abr 2009, 10:41:2727/4/09
a symfony-es

listo.. esta aqui.. jejeje! pense q para subir un archivo deberia ser
de otra forma.. bueno.. mande el archivo y esta ubicado aqui para su
descarga.. espero les funcione...
para descargar el archivo:
http://groups.google.co.ve/group/symfony-es/browse_thread/thread/31aea0ba3cba0fc7?hl=es

williams

no leída,
27 abr 2009, 11:36:5227/4/09
a symfo...@googlegroups.com
eso es con sfForm y cuando falla la validacion, se vuelven a cargar los estados y parroquias seleccionados?

Williams Rivas


--- El lun 27-abr-09, Roiman Ramos <ramos...@gmail.com> escribió:

De: Roiman Ramos <ramos...@gmail.com>
Asunto: [symfony-es] Re: Listas dependientes en symfony 1.2

Puentes Diaz, Roberto G.

no leída,
27 abr 2009, 11:48:2727/4/09
a symfony-es

Realmente me vendria excelente una guia con ejemplos y pasos de las
opciones para desarrollar esto...(no pido nada no, jeje)

Roiman Ramos

no leída,
27 abr 2009, 12:26:5827/4/09
a symfony-es
bueno.. en relacion a las sentencias sql q preguntaron en la otra
lista... hazlo por consola... psql bd usuario -h localhost < texto.sql
lo de las validaciones hay q probarlo... te invito a q lo pruebes y
documentes por aqui a ver q tal...

y con lo del manual paso a paso... jejeje bueno.. intente hacer algo q
se entendiera como hacer q funcionara.. de todas maneras esta todo el
proyecto.. solamente hay q meterle mano..

Pedro Amador Rodrguez Álvarez

no leída,
29 abr 2009, 4:10:4129/4/09
a symfo...@googlegroups.com
Buenas,

he estado dándole vueltas al tema en cuestión durante estos días, llegando a algunas conclusiones.

Como en mi proyecto actual tengo varias (muchas) relaciones n-m, y me interesa presentarlo mediante desplegables con actualización de otros desplegables a través de ajax, hice un método en la clase BaseForm que lo resuelve.

Para que os hagáis una idea, el uso sería añadiendo lo siguiente a la función "configure" de la clase del formulario (en este caso, lib/form/ClienteForm.php)
class ClienteForm extends BaseClienteForm
{
  public function configure()
  {
    $this->addPropelAjaxSelect('Selecciona país', 'pais', 'provincia');
  }
}

El primer parámetro indica el texto que aparecerá en la etiqueta, el segundo la tabla del esquema que se usará como "m" y el tercero la tabla "n" (dentro de la misma relación n-m).

Con esto se añadirá un widget sfWidgetFormPropelSelectAjax con los países, y al seleccionar uno de ellos actualizará el desplegable de provincia con las provincias de ese país, obtenidas a través de un método genérico "list" en un módulo "ajaxlist" creado para la ocasión.

Asumo varias cosas, entre ellas los nombres de los campos clave (provincia_id y pais_id para el ejemplo), el método para obtener los datos será "__toString" para ambas clases, y algunas cosas más, como por ejemplo añadir un "(Seleccionar uno)" a ambos desplegables para que al crear un nuevo registro tengas que *obligatoriamente* seleccionar uno de la lista, o que al editar un registro seleccione el país de la provincia en el desplegable de provincias...

Quiero reutilizar esto en otros proyectos, lo suyo es hacer un plugin, por lo que intentaré desarrollarlo (será mi primer plugin); este plugin se apoyará, lógicamente, en sfJqueryWidgetsPlugin

La idea que tengo es crear una clase que herede de sfFormPropel, para sustituir la herencia de la clase BaseFormPropel por esta nueva clase.

En fin, según vaya teniendo cosas os voy informando... tal vez tarde un poco, pero lo iré haciendo. Y si queda "apañao" y le resulta a alguien de interés o utilidad, pues lo comparto, publico, o algo así

Saludos,
Pedro.






2009/4/5 Alberto <Spin...@gmail.com>

Esa guia esta enfocada para modulo generado por propel para el admin,
pero funcionaria igual en la parte publica de la pagina?, el
formulario con symfony 1.2 se imprime solo con <?php echo $form ?>
como lo encajaria?
con este widget http://sandbox-ws.com/sfjquerywidgetsplugin puede
resolverse?

On 10 mar, 18:08, Sebastian M <sebastian.mejia.r...@gmail.com> wrote:
> Si funciona en symfony 1.2.2
>
> On 10 mar, 17:39, Joan Teixidó <eliog...@gmail.com> wrote:
>
> > buenas... y en vez de tanta complicacion con los componentes, no podeis
> > llamar por ajax a una acción q devuelva los nuevos valores del option y
> > sustituir los que ya hay?? eso no serviria??? o sea:
>
> > <select id='micampo'><option value='1'>valor1</option><option
> > value="2">valor2</option></select>
>
> > una llamada a Ajax a través de una funcion o un evento:
>
> > remote_function(array(
> >   'url' => 'cambiarValoresCombo',
> >   'update' => 'micampo',
>
> > ));
>
> > En la acción: public function executeCambiarValoresCombo
> > {
> >   //el código que sea q devuelva nuevos options
> >   $options = "<option value=3>Nuevo valor del combo</option>";
> >   return $this->renderText($options);
>
> > }
>
> > Eso funciona, no??
>
> > Joan
>
> > 2009/3/10 Luis <Luis.Demi...@gmail.com>
>
> > > Che, y ¿esto funciona en la version 1.2?.
>
> > > On 9 mar, 10:48, Sebastian M <sebastian.mejia.r...@gmail.com> wrote:
> > > > Saludos q pena la demora en la respuesta, realmente segui estos
> > > > tutoriales al pie de la letra:
>

> > > ..
>
> > > > On 2 mar, 16:10, Damian Suarez <rdsua...@gmail.com> wrote:
>
> > > > > 2009/3/2 Jose Luis Vicente Cababllero <josevc1...@gmail.com>
>
> > > > > > Lo que deseaba era hacerlo con widgets, por lo visto no es posible,
> > > podrias
> > > > > > damr las pautas de como hacerlo con la clase form, tal como lo
> > > explicas. Se
> > > > > > te agradece.
>
> > > > > Hasta el momento no hay widget que hagan selects dependientes[0]. Lo

Pedro Amador Rodrguez Álvarez

no leída,
14 may 2009, 7:36:0914/5/09
a symfo...@googlegroups.com
Hola de nuevo.

Retomando este tema de listas dependientes, tengo preparado un plugin para symfony 1.2 al que he llamado "sfPropelSelectAjaxPlugin", que depende directamente de sfJqueryWidgetsPlugin (este último ha de estar instalado).

Tenía la funcionalidad en un proyecto, pero sin estar como plugin. Al tener que reutilizarlo en otro proyecto, he movido la funcionalidad a un plugin.

La estructura del plugin es:
  sfPropelSelectAjaxPlugin/config/app.yml
  sfPropelSelectAjaxPlugin/lib/form/BaseFormPropelSelectAjax.class.php
  sfPropelSelectAjaxPlugin/modules/sfPropelSelectAjax/actions/actions.class.php

Tan sólo hace falta que la clase BaseFormPropel de lib/form/BaseFormPropel.class.php del proyecto herede de la clase BaseFormPropelSelectAjax del plugin; esta clase incluye un método "addPropelSelectAjax", que añade un widget de tipo sfWidgetFormPropelSelectAjax (de ahí la necesidad del plugin sfJqueryWidgetsPlugin) enlazado a otro widget del formulario, con actualización del mismo a través de ajax.

En el "configure" del formulario correspondiente, habría que añadir:
    $this->addPropelSelectAjax(
      'País' , /* Etiqueta */
      'provincia', /* Tipo */
      'pais', /* Categoría */
      '__getNombre' , /* Método del modelo para obtener los valores del desplegable "subordinado" */
      array('Nombre','asc') /* Campo para ordenación de resultados */
    );

Con este ejemplo, añadiría un nuevo widget llamado "pais_id" que obtendría los datos del método getNombre de la clase Pais del modelo, y cuando seleccionas un país actualiza el contenido del widget "provincia_id" existente en el formulario con las provincias del país seleccionado. La llamada ajax junto con el método que devuelve los datos también están implementados, en el módulo sfPropelSelectAjax

Como dije hace algún tiempo (disculpad por la tardanza), si le interesa a alguien se lo paso. Me gustaría, y por eso pongo este mensaje en la lista, la ayuda  / colaboración / orientación de alguien que haya desarrollado algún plugin para rematar algunas cosas, como por ejemplo generar un paquete para el plugin (actualmente es un tar.gz con los archivos, nada más), o dejar un código algo menos desastroso...

Para concluir, lo estoy usando en producción en dos proyectos y hasta ahora se ha comportado según lo esperado. Incluye algunas cosas más, como por ejemplo que un elemento "(Seleccionar uno)" a los desplegables que aparece seleccionado por defecto cuando estás creando un nuevo registro, o bien cuando se hace una llamada ajax (en el ejemplo, cuando seleccionas un país de la lista se actualizan las provincias, pero la primera de la lista es "(Seleccionar uno)", con lo que se "obliga" a seleccionar un elemento del desplegable). Una cosa muy importante es que se trata de java obstrusivo, es decir, no tiene alternativa no ajax.

Espero vuestros comentarios.
Un saludo,
Pedro Amador

2009/4/29 Pedro Amador Rodrguez Álvarez <prodr...@disc-order.com>

Reynier Perez Mira

no leída,
14 may 2009, 8:25:2414/5/09
a symfo...@googlegroups.com
> Espero vuestros comentarios.
Hola Pedro:
He estado buscando algo semejante pero yo tengo la siguiente situación: mis métodos no obtienen los datos de una BD sino que lo obtiene de un WebService que los retorna en forma de arreglo. Si me pudieras enviar el plugin y decirme los métodos que debo cambiar para que funcione con AJAX pero que los datos sean WS te lo agradecería mucho.

Un saludo
Ing. Reynier Pérez Mira
Dirección Técnica IP

José Luis Vicente Caballero

no leída,
16 may 2009, 21:10:4216/5/09
a symfo...@googlegroups.com

Quiero el plugin, se te agradece
José Luis Vicente Caballero

Pedro Amador Rodrguez Álvarez

no leída,
17 may 2009, 11:55:1017/5/09
a symfo...@googlegroups.com
Buenas,

Ando algo vago, así que copio-pego la respuesta a otro del grupo a quien también envié el plugin
Como le decía a él, agradezco cualquier aporte. No pongo todavía el plugin en la lista porque me gustaría revisarlo...

Hola,

el plugin va adjunto, en el estado en el que se encuentra ahora. Existe un parámetro adicional para especificar la URL del método que se llamará mediante ajax.

Para poder utilizar un web service, podrías por ejemplo tomar el archivo:

sfPropelSelectAjax/actions/
actions.class.php

que es un módulo, y desde ahí sacar los datos del web service y devolverlos como hace el propio método. Es decir, los datos que se devuelven mediante:
$this->renderText('<option value="id_elemento">nombre_
elemento</option>');

Tan sólo tienes que recorrer los elementos obtenidos con el webservice y devolverlos en "id_elemento" y "nombre_elemento". Con eso creas un módulo *nuevo* , y al configurar el nuevo widget, en el formulario que vayas a utilizar, añades el módulo/acción que se encarga de sacar los datos del WS:
    $this->addPropelSelectAjax(
      'nombre_etiqueta' , /* Etiqueta */
      'objeto_subordinado, /* Tipo */
      'objeto_principal', /* Categoría */
      '__toString' , /* Método del modelo para obtener los valores del desplegable "subordinado" */

      array('Nombre','asc'), /* Campo para ordenación de resultados */
     "modulo/accion" /* Acción nueva */
    );
El nuevo widget, cuando se seleccione un elemento, llamará a la acción "modulo/accion" con el parametro "id=id_elemento_seleccionado", es decir, "modulo/accion?id=1" (por ejemplo, si seleccionas el primer elemento)

No se si me habré explicado bien, pero si te sirve de algo, estupendo. Si necesitas cualquier otra aclaración, estamos en contacto.

Cualquier aporte para el plugin es bienvenido.

P.D. No me deja enviarlo como .tar.gz, te lo envío como un RAR a ver si cuela


2009/5/17 José Luis Vicente Caballero <josev...@gmail.com>
sfPropelSelectAjaxPlugin.rar

Pedro Amador Rodrguez Álvarez

no leída,
17 may 2009, 11:56:0517/5/09
a symfo...@googlegroups.com
Hola,
¿te llegó bien el mensaje con el plugin adjunto? Si no, te lo vuelvo a enviar...

2009/5/14 Reynier Perez Mira <rpe...@uci.cu>

Pedro Amador Rodrguez Álvarez

no leída,
17 may 2009, 11:57:0917/5/09
a symfo...@googlegroups.com
Vaya... dirección equivocada

:)

Dicho lo cual, Reynier, ¿te llegó? ^^)

2009/5/17 Pedro Amador Rodrguez Álvarez <prodr...@disc-order.com>

Reynier Perez Mira

no leída,
17 may 2009, 12:45:5117/5/09
a symfo...@googlegroups.com
> ¿te llegó bien el mensaje con el plugin adjunto? Si no, te lo vuelvo a enviar...
Hola Pedro:
Disculpa por la demora en responder el mensaje pero estoy inmerso en dos proyectos a la vez y esto ocupa casi todo mi tiempo. No te voy a mentir: no he tenido el más mínimo chance de echarle un ojo al plugin pero veo que enviaste un mensaje a la lista de cómo trabajar con el mismo usando WS por lo cual te estoy súper agradecido. Como sugerencia podrías ponerle un parámetro extra a la configuración del plugin que permitiera cambiar entre el uso de WS o BD.

Un saludo
PD: En cuanto tenga un chance lo miro a fondo y te envío mi "feedback" si lo creo pertinente
Ing. Reynier Pérez Mira
Dirección Técnica IP

From: symfo...@googlegroups.com [mailto:symfo...@googlegroups.com] On Behalf Of Pedro Amador Rodrguez Álvarez
Sent: Sunday, May 17, 2009 11:56 AM
To: symfo...@googlegroups.com
Subject: [symfony-es] Re: Listas dependientes en symfony 1.2

Hola,

Pedro Amador Rodrguez Álvarez

no leída,
17 may 2009, 23:40:5617/5/09
a symfo...@googlegroups.com
"...no pongo todavía el plugin en la lista..." XDXDXDXD

En fin, dirección equivocada de nuevo, cuando uno tiene el día torcido, lo tiene...

Pues nada, me gustaría haber revisado el plugin antes de enviarlo a la lista: adecentarlo un poco, lavarlo, peinarlo, ... pero ha ido "as is".

:D

2009/5/17 Pedro Amador Rodrguez Álvarez <prodr...@disc-order.com>
Responder a todos
Responder al autor
Reenviar
0 mensajes nuevos