Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Drupal »

Seleccionar item de select dinamicamente

Estas en el tema de Seleccionar item de select dinamicamente en el foro de Drupal en Foros del Web. Buenos dias a todos. Traigo para vosotros una pequeña duda que se escapa ya de mis manos. Espero que me explique con claridad. En mi ...
  #1 (permalink)  
Antiguo 11/10/2012, 05:09
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Seleccionar item de select dinamicamente

Buenos dias a todos. Traigo para vosotros una pequeña duda que se escapa ya de mis manos. Espero que me explique con claridad.

En mi web tengo un listado de actividades, donde la columna de mas a la derecha es un link a un formulario. En dicho formulario hay un select donde aparecen todas las actividades disponibles.

Cuando clickas al link te envia al formulario, y passa por GET el numero de la actividad que has seleccionado. Mi pregunta es: ¿Como puedo hacer para que en el select se seleccione automáticamente la actividad que la persona ha elegido?

No hace falta decir que la web está hecha en drupal.

He intentado lo siguiente:

dentro del .module he introducido el código siguiente:
Código PHP:
$numero = $_GET['nid'];

    drupal_add_js("
        
            $('#edit-submitted-curs option[value^=\"<?php echo $numero?>\"]').attr('selected', true);
    ","inline");
Que viene a decir que seleccione el curso que comienze por el numero que le marco i le ponga el selected.

Espero que me podais ayudar!!
Gracias
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #2 (permalink)  
Antiguo 11/10/2012, 05:36
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Seleccionar item de select dinamicamente

Yo meteria el contenido dentro de un $(document).ready, ya que no sabes si existira ese selector al llamar a drupal_add_js
  #3 (permalink)  
Antiguo 11/10/2012, 06:03
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Seleccionar item de select dinamicamente

Gracias por tu respuesta. Pero si que existe el selector, porque en el formulario segun que curso elijas tiene un precio u otro. Y está programado dentro de la misma función i funciona perfectamente. Debe de ser otra cosa.
Pero gràcias igualmente!!

PD: Ya notareis que Drupal y yo andamos bastante peleados :S
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #4 (permalink)  
Antiguo 11/10/2012, 07:07
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Seleccionar item de select dinamicamente

Digo que metas todo dentro de un $(document).ready

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.    $('#edit-submitted-curs option[value^=\"<?php echo $numero; ?>\"]').attr('selected', true);
  3. });

Existe el selector pero no sabes si en el momento en que se ejecuta el código Javascript.
De todos modos no estoy seguro que esa sea la solución, pero con esto te aseguras bastante.

Saludos.
  #5 (permalink)  
Antiguo 15/10/2012, 02:39
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Seleccionar item de select dinamicamente

Lo siento. Pero sigue sin funcionar.

He insertado el codigo dentro de los tags <script> y nada de nada.

Sabes que otra cosa puede ser?

Gràcias!
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #6 (permalink)  
Antiguo 15/10/2012, 03:40
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Seleccionar item de select dinamicamente

Ese .module del que haces referencia en el primer comentario, es un modulo tuyo?
Porque si es asi podés usar hooks y selccionar el item por php y no con javascript. Usando el hook_form_alter.

Saludos.
  #7 (permalink)  
Antiguo 15/10/2012, 05:23
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Seleccionar item de select dinamicamente

Vale. Creo que me explique mal o no tan detalladamente como quisiera. Te pido disculpas, pero soy bastante nuevo en Drupal.

Decir que estoy utilizando Drupal 6.

En respuesta a tu pregunta. Si, es un modulo mio propio. Y también si, ya estoy utilizando el hook_form_alter, que en mi caso llama cij_form_alter()

Para que entiendas mejor como lo tengo seria:
Código PHP:
<?php
function cij_form_alter(&$form, &$form_state$form_id) {
    global 
$_GET;

    if (
$form['#node']->nid == '1154' || $form['#node']->nid == '1190') {
        
$numero $_GET['nid'];
        
      
drupal_add_js("
            if (Drupal.jsEnabled){
                $(document).ready(function(){
                        $('#edit-submitted-curs option[value^=\"<?php echo $numero; ?>\"]').attr('selected', true);
                });
            };"
"inline");        
}
?>
No se si esta bien, o es una barbaridad.

Espero que haya aclarado algunas de tus dudas. Y gracias!
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #8 (permalink)  
Antiguo 15/10/2012, 05:31
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Seleccionar item de select dinamicamente

Te recomiendo que filtres el form_alter mediante el $form_id , igual dudo que arregle algo pero lo digo para que tengas un codigo mas limpio en tus formularios.
No se, empeza a debugear, hace un print_r($_GET).

Dentro del drupal_add_js mete un alert para verificar que se esta ejecutando el codigo, o mira la consola del navegador que uses a ver si hay algun error. La verdad no uso asi esa funcion, directamente meto todo en un fichero y lo añado.

Saludos.
  #9 (permalink)  
Antiguo 16/10/2012, 05:37
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Seleccionar item de select dinamicamente

Gracias por la respuesta! Voy a ir probando a depurar y demas, y si tengo alguna novedad la diré por aqui.
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #10 (permalink)  
Antiguo 03/12/2012, 06:51
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Seleccionar item de select dinamicamente

Ya sé que es tarde, pero hace tiempo que resolví el problema y ahora me acordé de que no habia publicado la respuesta.

Era una tontería. Lo dejo aquí por si a alguien le pudiera servir el futuro:

Código PHP:
        $numero $_GET['nid'];
        
        
drupal_add_js("
            if (Drupal.jsEnabled){
                $(document).ready(function(){
                        $('#edit-submitted-curs option[value^=$numero]').attr('selected', true);
                });
            };"
"inline"); 
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.

Etiquetas: dinamicamente, item, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:21.