Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2013, 04:51
cachimira
 
Fecha de Ingreso: noviembre-2010
Mensajes: 24
Antigüedad: 13 años, 5 meses
Puntos: 0
Activar/deactivar formulario con arrays relacionadas PHP-JavaScript

Buenos días,

tengo un problema entre PHP y javascript en un formulario.
Por un lado tengo este array en PHP:
Código PHP:
$proyecto_tarea[$id_proyecto]["nombre"] = nombre_proyecto
$proyecto_tarea
[$id_proyecto]["numero"] = código_numérico_del_proyecto
$proyecto_tarea
[$id_proyecto]["tarea"][$id_tarea] = nombre_tarea 
Este array lo lleno desde mi base de datos y queda algo como esto:
Código PHP:
Array
(
    [
5] => Array
        (
            [
nombre] => Actividad de formación
            
[numero] => 005
            
[tarea] => Array
                (
                    [
9] => Curso A
                    
[10] => Curso B
                
)
        )

    [
6] => Array
        (
            [
nombre] => Permiso
            
[numero] => 006
            
[tarea] => Array
                (
                    [
11] => Enfermedad
                    
[12] => Mudanza
                
)
        )

    [
7] => Array
        (
            [
nombre] => Vacaciones
            
[numero] => 007
            
[tarea] => Array
                (
                    [
13] => Vacaciones

                
)
        )

Según el usuario aparecen solamente en mi array anterior sus proyectos, y para cada proyecto sus tareas asociadas.

Mi problema aparece en el formulario que el usuario debe rellenar, quiero que cuando seleccione un proyecto en concreto aparezcan en la siguiente casilla solamente aquellas tareas asignadas a ese proyecto en concreto que ha escogido.
Mi código en PHP/HTML es el siguiente:
Código HTML:
Ver original
  1. <form name="FormIntroDatos" ... ...>
  2. ... ... ...
  3.    <td><select name="proj_1" id="proj_1" " size="1" onChange="mostrar_tarea('proj_1', 'tasc_1');">
  4.  
  5.       <option></option>
  6. <?php
  7.      foreach ($proyecto_tarea as $id_proyecto => $datos_proj) {
  8. ?>
  9.          <option><?php echo $datos_proj["nombre"]." // ".$datos_proj["numero"] ?></option>
  10. <?php
  11.      }
  12. ?>
  13.    </select></td>
  14.  
  15.    <td><select name="tasc_1" id="tasc_1" size="1" disabled>
  16.       <option></option>
  17. <?php
  18. //    foreach ($proyecto_tarea as $id_proyecto => $datos_proj) {
  19. //       foreach ($datos_proj["tarea"] as $id_tarea => $nombre_tarea) {
  20. ?>
  21. <!--      <option><?php echo $nombre_tarea ?></option>
  22. -->
  23. <?php
  24. //       }
  25. //    }
  26. ?>
  27.    </select></td>
  28.  </tr>
  29. ... ...
Y mi código en javascript es:
Código Javascript:
Ver original
  1. function mostrar_tarea(sel_proyecto, sel_tasc){
  2.    var elem_proyecto=document.getElementById(sel_proyecto);
  3.    var elem_tasc=document.getElementById(sel_tasc);
  4.    elem_tasc.disabled = false;
  5.  
  6.    if (elem_proyecto.value = "Permiso")
  7.       elem_tasc.value[1] = "Enfermedad"
  8.       elem_tasc.value[2] = "Mudanza"
  9.       return(elem_tasc)
  10.    }

Pero no funciona... en la casilla de tareas de mi formulario, o bien me aparecen las opciones que tengo en el código PHP/HTML que son todas las tareas para todos los proyectos (ahora están las líneas comentadas). O bien no me sale nada (ya que alguna cosa esta mal en el JavaScript o en otro sitio).

Además, para cada proyecto hay 'n' tareas y no solamente una, así que debería poder devolver des de javascript un array con las tareas del proyecto que el usuario ha escogido.


Muchas gracias!