Ir al contenido


Foto

ayuda con formularios


  • Por favor identifícate para responder
13 respuestas en este tema

#1 angel1201

angel1201

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 21 julio 2013 - 09:49

Hola admin mira el problema que tengo es este :

quiero hacer un formulario dinámico me base en la pag de http://elpoli.delphi...mpos-dinamicos/ y lo trate de hacerlo, pero dentro de ese formulario tengo que hacer otro ya que mi problema es que en el primer formulario van los datos de mi profesor como nombre, apellido etc etc, después dentro de ese formulario un profesor puede tener o no asesorías para los alumnos en cual debe de tener campos de día, hora de inicio de asesoría, hora fin de asesoría y no se como hacerlo... espero y me puedas ayudar, lo trate de hacer como el de la pag pero necesito identificar las asesorías de cada profesor así como de sus datos ya que mi idea es mandar la información a un archivo xml ...  en mi  archivo html hice esto :
obvio el script es este [java]
<SCRIPT src="js/pruebaprofesores.js"></SCRIPT>
............
..............
............
                            <h2>Datos del profesor</h2>
<br>
<form id="formdinamico" name="formdinamico" action="prueba.php">
    <a href='JavaScript:agregarCampoProfesor();'> Agregar Profesor </a>
     
<div id="contenedorcampos">
    </div>
 
<input type="submit" value="Guardar" name="Guardar">
</form>

...........................................................................................
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Luego en mi archivo  pruebaprofesores.js esta esto:



var Nombre = 0;
var ApellidoPaterno = 0;
var ApellidoMaterno = 0;
var Oficina = 0;
var Email = 0;
var Aulavirtual = 0;


function agregarCampoProfesor(){

Nombre = Nombre  1;
ApellidoMaterno = ApellidoMaterno  1;
ApellidoPaterno = ApellidoPaterno  1;
Oficina = Oficina  1;
Email = Email  1;
Aulavirtual = Aulavirtual  1;
var NvoCampo= document.createElement("div");
NvoCampo.id= "divcampo_" (Nombre);
NvoCampo.innerHTML=
"<h5> Campos a llenar del Profesor: " Nombre " </h5>"
"<div class='input-prepend' >"
" <span class='add-on'>Nombre : </span>"
"        <input type='text' size='10'  placeholder='Aqui va el Nombre' name='nomb"  Nombre  "' id='Nombre"  Nombre  "'>" 
" <br />"
" <br />"
" <span class='add-on'> Apellido Paterno:</span>"
"        <input type='text' size='5'  placeholder='Aqui va el Apellido Paterno ' name='apat"  ApellidoPaterno  "' id='Apellido Paterno"  ApellidoMaterno  "'>" 
" <br />"
" <br />"
" <span class='add-on'> Apellido Materno:</span>"
"        <input type='text' size='5'  placeholder='Aqui va el Apellido Materno' name='Apellido Materno"  ApellidoMaterno  "' id='Apellido Materno"  ApellidoPaterno  "'>" 
" <br />"
" <br />"
" <span class='add-on'> Oficina:</span>"
"        <input type='text' size='5'  placeholder='Oficina de asesoria' name='Oficina"  Oficina  "' id='oficina"  Oficina  "'>" 
" <br />"
" <br />"
" <span class='add-on'> Email:</span>"
"        <input type='text' size='5'  placeholder='Email' name='Email"  Email  "' id='Email"  Email  "'>" 
" <br />"
" <br />"
" <span class='add-on'> Aula Virtual:</span>"
"        <input type='text' size='5'  placeholder='Aulavirtual' name='Aulavirtual"  Aulavirtual  "' id='Aulavirtual"  Aulavirtual  "'>" 
" <br />"
"<li class='divider'></li>"
"</div>"
" <blockquote>"
" <h5>ASESORIAS</h5>"
    "  <a href='JavaScript:agregarCampo(Nombre);'> Agregar Asesorias </a>"
" </blockquote>"

"  <a href='JavaScript:quitarCampo("  Nombre  ");'> Quitar Profesor </a>"
" <br />"
" <br />"
" </blockquote>";

var contenedor= document.getElementById("contenedorcampos");
    contenedor.appendChild(NvoCampo);
  }


function quitarCampo(iddiv){
var eliminar = document.getElementById("divcampo_"  iddiv);
  var contenedor= document.getElementById("contenedorcampos");
  contenedor.removeChild(eliminar);
}


var dia = 0;
var inicio = 0;
var hasta = 0;
var lugar = 0;

function agregarCampo(Nombre){
dia = dia  1;
inicio = inicio  1;
hasta = hasta  1;
lugar = lugar  1;
var NvoCampo= document.createElement("div");
NvoCampo.id= "divcampo_" (dia);
NvoCampo.innerHTML=
"<blockquote>"
"<h5> Campos de asesoria del Profesor: " Nombre "</h5>"
"<div class='input-prepend' >"
" <span class='add-on'>Día:</span>"
"        <input type='text' size='10'  placeholder='Aqui va el día' name='"  Nombre  "dia"  dia  "' id='dia"  dia  "'>" 
" <br />"
" <br />"
" <span class='add-on'> inicio:</span>"
"        <input type='text' size='5'  placeholder='inicio de asesoria' name='"  Nombre  "de"  inicio  "' id='inicio"  inicio  "'>" 
" <span class='add-on'> fin:</span>"
"        <input type='text' size='5'  placeholder='fin de asesoria' name='"  Nombre  "hasta"  hasta  "' id='hasta"  hasta  "'>" 
" <br />"
" <br />"
" <span class='add-on'> lugar:</span>"
"        <input type='text' size='5'  placeholder='lugar de asesoria' name='"  Nombre  "lugar"  lugar  "' id='lugar"  hasta  "'>" 
"</div>"
" <br />"
" <br />"
"        <a href='JavaScript:quitarCampo("  dia  ");'> Quitar Asesoria</a>"
" <br />"
" <br />"
" </blockquote>";

var contenedor= document.getElementById("contenedorcampos");
    contenedor.appendChild(NvoCampo);
  }[/java]
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

El problema es que la parte de asesoría lo tuve que poner afuera del form ya que no me daba si lo metía en la parte de  ""  div class='input-prepend'  ""    ..... ah también a la hora de quitar en profesor debe de quitar lo campos de asesoría, cosa que no hace ya que como asesoría está fuera del form no lo hace....... espero y me puedas ayudar....... de ante mano gracias por el tiempo de leerlo
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 22 julio 2013 - 07:57

El estar fuera o no del formulario no debería afectar al manejo de los campos dinámicos. El problema debe estar en la manera en que los estás nombrando. El código aún no es muy claro. Habrá manera de que puedas adjuntar los archivos html y js para revisarlos?


Saludos.
  • 0

#3 angel1201

angel1201

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 22 julio 2013 - 10:02

hola... te acabo de enviar un correo con los archivos para ver si los puedes revisar gracias por tu tiempo y espero y me puedas ayudar 
  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 22 julio 2013 - 10:21

hola... te acabo de enviar un correo con los archivos para ver si los puedes revisar gracias por tu tiempo y espero y me puedas ayudar


Claro que si, con mucho gusto. En la noche los reviso por que  en este momento me encuentro en el trabajo y se me complica un poco. Revisandolos posteo la solución aquí mismo.

un saludo.
  • 0

#5 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 23 julio 2013 - 08:12

Revisando el código que me enviaste pude notar que el problema estaba en que usas el mismo contenedor de campos dinámicos tanto para profesores como para asesorias. Debido a que son dos bloques diferentes en ambos formularios, debes controlarlos por separado. Así, cuando agregas un nuevo profesor debes agregar un nuevo contenedor dinámico. Eso en tu código se haría de la siguiente manera en tu método AgregaCampoProfesor:

[java]
.......
" <h5>ASESORIAS</h5>                                                "+
" <a href='JavaScript:agregarCampo(Nombre);'> Agregar Asesorias </a>" +
" </blockquote>                                              " +
" <div id='continterno_" + Nombre + "'></div>"+
[/java]

Como puedes ver, después del enlace a la llamada de agregar asesorias he agregado un contenedor dinámico. Será allí donde deberás incluir los datos de la asesoría. Para ello tu método agregarCampo quedaría de la siguiente manera:



[java]function agregarCampo(Nombre){
dia = dia + 1;
inicio = inicio +1;
hasta = hasta + 1;
lugar = lugar + 1;
var NvoCampo= document.createElement("div");
NvoCampo.id= "divcampoasesoria_"+(dia);
NvoCampo.innerHTML=
"<blockquote>"+
"<h5> Campos de asesoria del Profesor: "+Nombre+"</h5>"+
"<div class='input-prepend' >"+
" <span class='add-on'>Día:</span>"+
"        <input type='text' size='10'  placeholder='Aqui va el día' name='" +Nombre+ "dia" + dia + "' id='dia" + dia + "'>" +
" <br />"+
" <br />"+
" <span class='add-on'> inicio:</span>"+
"        <input type='text' size='5'  placeholder='inicio de asesoria' name='" +Nombre+ "de" + inicio + "' id='inicio" + inicio + "'>" +
" <span class='add-on'> fin:</span>"+
"        <input type='text' size='5'  placeholder='fin de asesoria' name='" +Nombre+ "hasta" + hasta + "' id='hasta" + hasta + "'>" +
" <br />"+
" <br />"+
" <span class='add-on'> lugar:</span>"+
"        <input type='text' size='5'  placeholder='lugar de asesoria' name='" +Nombre+ "lugar" + lugar + "' id='lugar" + hasta + "'>" +
"</div>"+
" <br />"+
" <br />"+
"        <a href='JavaScript:quitarCampoAsesoria(" + dia + ");'> Quitar Asesoria</a>"
" <br />"+
" <br />"+
" </blockquote>";

var contenedor= document.getElementById("continterno_" + Nombre);
    contenedor.appendChild(NvoCampo);

  }[/java]



donde como puedes ver el nuevo contenedor dinámico es referenciado:

var contenedor= document.getElementById("continterno_" + Nombre);

Archivos adjuntos


  • 0

#6 angel1201

angel1201

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 23 julio 2013 - 05:22

Muchas gracias por tu ayuda me sirvió de mucho, gracias ...... te quería preguntar de otro problema  que me encontré igual con formularios espero y me puedas ayudar apenas lo estoy analizando pero si está un poco enredado deja lo organizo bien por que son formularios dentro de otros y dentro de otros y también debe de ver la forma de mandarlos a mi archivo xml ... gracias de nuevo por la ayuda
  • 0

#7 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 23 julio 2013 - 05:34

Es el espíritu de este foro amigo mio. Ayudarnos los unos a los otros.

cuando gustes yo o cualquiera de nuestros amigos seguro ayudaran.


Saludos.
  • 0

#8 angel1201

angel1201

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 24 julio 2013 - 03:44

oye revisando  el código me di cuenta que si quiero eliminar asesorías no me deja ... solo me deja quitar profesores y obvio me elimina todo pero si sólo quiero eliminar asesorías no me deja .. ya revisé el llamado de funciones y todo pero nada de nada no encuentro el error .... no se si me puedas ayudar de nuevo para saber que debo de hacer ,.... gracias por tu ayuda y tiempo 
  • 0

#9 angel1201

angel1201

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 24 julio 2013 - 04:27

ahh por cierto me tomé la molestia de enviarte de nuevo mi código para que lo puedas revisar... ojalá y me puedas ayudar ....de  ante mano gracias por tu tiempo y paciencia ...
  • 0

#10 angel1201

angel1201

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 24 julio 2013 - 04:42

:tongue: que crees como te dije iba a estarlo revisando y ya logre hacer lo que no podía solo en la parte del llamado a quitarasesoria lo modifique por esto....

[js]
function quitarCampoAsesoria(iddiv){
var eliminar = document.getElementById("divcampoasesoria_"+iddiv);
  var contenedor= document.getElementById("continterno_" +Nombre);
  contenedor.removeChild(eliminar);
}[/js]

y ya corre bien .....  (y)
  • 0

#11 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 24 julio 2013 - 04:48

Excelente¡¡¡¡¡¡. Gracias por compartir la solución.
  • 0

#12 angel1201

angel1201

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 24 julio 2013 - 11:12

HOLA te acuerdas que te mencione que tenía que acomodar mis ideas para explicar mi otro problema pues mira estos son  :tongue:

primero mmm cómo puedo incluir un filechooser en un formulario en un campo que se llama LINK del archivo aparece un cuadro de texto el cual debe de ser llenado con la ruta que el usuario escriba pero para eso se debe de crear un filichooser no ?? el cual me va a dar la posibilidad de buscar el archivo requerido y una ves seleccionado me ebe de aparecer en m cuadro de texto la ruta para que hasta que haga click un el boton guardar se almacene.....

segundo mmm en otro campo tengo un apartado de "resumen "el cual pretende ser muy grande ya que va a ir el resumen del tema .... pensaba hacerlo con un cuadro de texto pero con scroll y no se si se pueda hacr dentro de mi .js como las etiquetas que se muestran......y obvio guardar todo el resumen una sola variable para mandarlo a mi archivo XML

tercero .... el apartado tema ... tiene posibilidad de agregar subtemas ... mm es como el de profesores con sus asesorías  pero para este apartado el problema es que los subtemas tienen la posibilidad de agregar subsubtemas o recursos educativos , dentro de subsubtemas también se encuentra la posibilidad de agregar recursos educativos y dentro de los  recursos educativos hay un apartado de "tipo", el cual sólo tiene 3 posibilidades ya sea "ejemplo o practica o ejercicio" para esta parte pensaba elaborarla como un menu donde el usuario elige uno de los tres posibles campos (como el que esta ahorita en la parte de arriba para escribir un mensaje en el foro, el botó nde Icono que puedes elegir "Standar o Lamp o Angry "....... ) y supongo que se debe de identificar de alguna manera cada uno de esas opciones en mi .js  no ??? y los contenedores de cada uno también  son muchos ... y no se si se pueda hacer como el de profesores y asesorías ya que se pueden quitar uno por uno pero si quito un subtema en idea se debería quitar todos sus subsubtemas y sus recursos educativos y el problema pues aparentemente creció un buen ya que no se si tomarla cada uno de los formularios por separado y unirlos como me comentaste o que onda  .............................espero y me puedas ayudar me la pase toda la tarde buscando información y haciendo pruebas pero no me queda .... espero y me puedas ayudar .....de ante mano gracias y disculpa las molestias que te ocasiono  .......... es mi tercer día con .js y html .....
  • 0

#13 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 25 julio 2013 - 07:44

espero y me puedas ayudar me la pase toda la tarde buscando información y haciendo pruebas pero no me queda .... espero y me puedas ayudar .....de ante mano gracias y disculpa las molestias que te ocasiono  .......... es mi tercer día con .js y html .....


Lo ideal mi amigo es que por cada duda se genere un nuevo hilo de preguntas y respuestas. Esto para que a otros con el mismo problema pueda ayudarles las soluciones planteadas. También te recomiendo usar títulos descriptivos en los títulos de cada nuevo hilo. Así entre todos podremos ayudarte mejor. :)

No es ninguna molestia amigo mio, como he dicho previamente, el espíritu de esta comunidad es precisamente ayudarnos los unos a los otros.


  • 0

#14 gabrielguerrero

gabrielguerrero

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 24 junio 2014 - 02:29

tengo un problema tengo un codio similar pero no se como guardar cada uno en la base de datos me pueden ayudar
  • 0




IP.Board spam blocked by CleanTalk.