Autor Tema: Problema al cargar un select desde JSON leer fichero en un archivo php  (Leído 4466 veces)

gatoher

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 86
    • Ver Perfil
A ver, os cuento mi problemilla, tengo un formulario que tiene varios 'select' que se cargan con JSON. Todo funciona perfecto hasta que meto el formulario dentro de un método. Vamos, que cuando aprietas el boton de registrarse por ejemplo y se muestra el formulario pues entonces dejan de cargarse los 'selects'.

Si el formulario lo saco de la función y se carga con la pagina, claro ya es accesible desde el script de javaScript.

Pongo algo de código pero tengo claro que esto ocurre por que el JSON se carga con la página, y el formulario no se carga en el DOM hasta que no se pulsa el boton. ¿Como puedo solucionar esto?

   
Código: [Seleccionar]
echo'<section id="login_form" class="oculto login_form_tamanyo" >';
    echo'<h4>Introduzca sus datos</h4>';
    echo'<form name="logeo" action="index.php" method="POST" id="form_login">';
        echo'<fieldset>';
        echo'</fieldset>';
                echo'</form>';
        echo'</section>';


   El JSON no lo pongo por que como digo me funciona:

     
Código: [Seleccionar]
    window.onload=function(){
     //Esto es el select que se crea al pulsar el boton
     provincias = document.getElementById('provincia');
     
« Última modificación: 25 de Abril 2016, 08:56 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Problema al cargar un select desde JSON en un archivo php
« Respuesta #1 en: 19 de Abril 2016, 10:52 »
Hola!

No me queda claro a qué te refieres con select

Citar
     //Esto es el select que se crea al pulsar el boton
     provincias = document.getElementById('provincia');

Un select es un elemento de un formulario, eso que has puesto es la recuperación de un nodo por id usando JavaScript, no se entiende bien lo que significa que eso es un select  ::)

Lo mejor es que crees un pequeño código de ejemplo donde se pueda ver el problema y digas lo que obtienes y lo que esperarías obtener. Con ese código podríamos revisarlo y decirte cómo debe quedar el código para obtener el resultado deseado.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

gatoher

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 86
    • Ver Perfil
Re:Problema al cargar un select desde JSON en un archivo php
« Respuesta #2 en: 20 de Abril 2016, 11:15 »
Hola Cesar, vi tú comentario ayer pero no me dio tiempo a explicarme, gracias.
A ver, como cuento, tengo un formulario que esta oculto con una clase css con visibility: hidden. Al pulsar un boton con JQUERY lo que hace es que se muestra.
Este formulario tiene dos desplegables que se cargan con JSON, 'este funciona perfectamente' os pongo un trozo de código:

Código: [Seleccionar]
  //class='oculto' es la causa de los problemas
echo'<section id="form_registro" class="oculto registro_form_tamanyo">';
    echo'<h4>Introduzca sus datos</h4>';
    echo'<form name="registro" action="index.php" method="post" id="form_registro">';
        echo'<fieldset>';
        echo'<legend>Formulario de Registro</legend>';
echo'<input type="text" name="nameReg" id="nameReg" autofocus  placeholder="Escribe tú nombre" value='.$obj->setValue('nameReg').'>';
    echo'<label for="primer_apellido">Primer Apellido:</label>';

//Desplegable que se debería cargar con JSON
echo'<label for="provincia">Provincia:</label>';
 
echo'<select name="provincia" id="provincia">';
           
               echo'</select>';


   Yo lo he solucionando, 'aprovechando que el formulario es oculto' llamando a los formularios ocultos al cargar el script, que es cuando el JSON es llamado:

Código: [Seleccionar]
window.onload=function(){   
     provincias = document.getElementById('provincia');
     genero = document.getElementById('genero');

     cargarPeticion("PP", "opcion=PP");
     cargarPeticion("PG", "opcion=PG");
   
};


   La verdad que esta vez la solución ha sido sencilla, pero andaba buscando como poder llamar a ese script JSON al pulsar un boton o en algun evento como mouseover etc

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Problema al cargar un select desde JSON en un archivo php
« Respuesta #3 en: 22 de Abril 2016, 22:09 »
 :) Creo que ya te he entendido, hay dos cuestiones a tener en cuenta. Se podría pensar en leer el contenido de un archivo en el servidor (esto es lo más habitual) y para ello la forma de acceso habitual sería usar Ajax, se explica en http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=83&Itemid=212

Con Ajax puedes cargar el contenido de un fichero como respuesta a un evento (como pulsar un botón o un mouseover, etc.)

La otra opción sería leer ficheros en el propio pc del usuario. Esto históricamente ha estado restringido por motivos de seguridad, pero con HTML5 ya se pueden hacer algunas cosas.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

gatoher

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 86
    • Ver Perfil
Re:Problema al cargar un select desde JSON en un archivo php
« Respuesta #4 en: 24 de Abril 2016, 10:47 »
   Hola Cesar, voy a hacer el curso. Creo que será interesante.
   Ya pondre las dudas que me surjan en el foro. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".