Foros del Web » Programando para Internet » PHP »

Mostrar un formulario u otro en una misma página

Estas en el tema de Mostrar un formulario u otro en una misma página en el foro de PHP en Foros del Web. Hola, ¿cómo hago para mostrar un formulario u otro distinto en la misma página dependiendo de una opción que escoja al principio?, me explico tengo ...
  #1 (permalink)  
Antiguo 28/07/2008, 14:19
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Exclamación Mostrar un formulario u otro en una misma página

Hola, ¿cómo hago para mostrar un formulario u otro distinto en la misma página dependiendo de una opción que escoja al principio?, me explico tengo que mostrar 3 formularios distintos en la página, la 1ª vez que entre me mostrará uno con una opción para escoger: Soporte o Información, y dependiendo de la opción que elija, la página se volverá a cargar con el formulario correspondiente, el de Soporte o el de Información. Todos tienen que ir en la misma página. He probado con capas, activando y desactivando la visibilidad, pero no funciona, ¿alguna idea de cómo hacerlo?.


Un saludo.
  #2 (permalink)  
Antiguo 28/07/2008, 14:24
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: Mostrar un formulario u otro en una misma página

Pues mira tu solucion aunque es algo compleja seria AJAX pero a mi ver necesariamente deben ir todos en la misma pagina..???

No se pero a mi ver estaria mejor en paginas distintas e ir avanzando entre ellas..??

Salu2..!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #3 (permalink)  
Antiguo 28/07/2008, 14:24
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Mostrar un formulario u otro en una misma página

Hola:
si colocas cada formulario en div distintos, y dependiendo de la opcion escogida cambias la visibilidad del div que desees, de esta manera se visualiza un formulario u otro.
Espero haberte ayudado...
Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #4 (permalink)  
Antiguo 28/07/2008, 14:27
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: Mostrar un formulario u otro en una misma página

La opcion que te da the_web_saint es correcta pero si ya probastes y no te funciona..?? dime le das Submit al formulario cada vez que seleccionas una opcion o como lo tienes planeado hacer??

Salu2..!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #5 (permalink)  
Antiguo 28/07/2008, 14:32
agd
 
Fecha de Ingreso: mayo-2008
Mensajes: 98
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Mostrar un formulario u otro en una misma página

puedes hacerlo con php, crea los 3 formularios y metelos dentro de if

ej:

if($_POST['form1']){
echo form1;
}

if($_POST['form2']){
echo form2;
}

if($_POST['form3']){
echo form3;
}
  #6 (permalink)  
Antiguo 28/07/2008, 14:40
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Exclamación Respuesta: Mostrar un formulario u otro en una misma página

Hola, sobre lo 1º, al final creo que lo haré así, en dos página distintas, en cuanto a lo de los DIVs y la visibilidad, ya lo he probado, pero no me funciona, tengo cada uno en un DIV y al principio están todos con lo visibilidad "invisible", y sólo sale lo de la opción a escoger, pero después intento cambiar la visibilidad mediante JavaScript, y eso ya no funciona. Cada uno de los DIVX se llama: opcion, info y soporte, el formulario de elección, f_eleccion, y el menú desplegable, UN list, era operacion.

Código:
<script language="javascript">
   function mostrar_formulario()
   {
      document.getElementById(opcion).style.visibility = "hidden";
      if (document.form.f_eleccion.operacion[0].selected == true)
      {			
         document.getElementById(info).style.visibility = "visible";
         document.getElementById(soporte).style.visibility = "hidden";
      }
      else
      {
         document.getElementById(info).style.visibility = "hidden";
         document.getElementById(soporte).style.visibility = "visible";
      }
   }
</script>
  #7 (permalink)  
Antiguo 28/07/2008, 14:43
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: Mostrar un formulario u otro en una misma página

Pues si mal no interpreto tu problema es que el getelementbyId('') lleva comillas simples tal vez sea eso por lo que no te funciona..

Por cierto revisa tambien que sean los nombres correctos de los IDs de los formularios..

Prueba y me cuentas..

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #8 (permalink)  
Antiguo 28/07/2008, 14:47
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Mostrar un formulario u otro en una misma página

Hola:
Exactamente eso iva a escribir, pero se me adelanto agressor, es getElementById('info') por ejemplo, aplica esto a todos los demás.
Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #9 (permalink)  
Antiguo 28/07/2008, 14:56
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Mostrar un formulario u otro en una misma página

Aqui te va un ejemplito sencillo

Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="javascript">
function mostrarForm(valor)
{
document.getElementById('primero').style.visibilit y = "hidden";
if (document.prim.selec[0].selected == true)
{
document.getElementById('soporte').style.visibilit y = "visible";
document.getElementById('info').style.visibility = "hidden";
}
else
{
document.getElementById('info').style.visibility = "visible";
document.getElementById('soporte').style.visibilit y = "hidden";
}
}
</script>
</head>

<body>
<div id="primero">
<form id="prim" name="prim">
<select name="selec" onchange="javascript: mostrarForm('value');">
<option value="0">Soporte</option>
<option value="1">Informaci&oacute;n</option>
</select>
</form>
</div>
<div id="soporte" style="visibility:hidden;">
<form id="soport">
<label for="sop">Soporte</label><input id="sop"/>
</form>
</div>
<div id="info" style="visibility:hidden;">
<form id="information">
<label for="inf">Informaci&oacute;n</label><input id="inf"/>
</form>
</div>
</body>
</html>

__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.

Última edición por the_web_saint; 28/07/2008 a las 15:00 Razón: equivovación
  #10 (permalink)  
Antiguo 28/07/2008, 14:57
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Mostrar un formulario u otro en una misma página

Estoy probando ahora a hacerlo por PHP, pero probaré también lo que comentáis de las comillas simples.

Ya os comentaré.


Un saludo.
  #11 (permalink)  
Antiguo 29/07/2008, 11:40
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Exclamación Respuesta: Mostrar un formulario u otro en una misma página

Al final, lo he hecho en PHP, menos complicaciones, pero no sale del todo bien, me explico, la 1ª vez que entre en la página muestra el primer formulario, el de escoger el tipo de contacto, pero después, escoja la opción que escoja, siempre me muestra el mismo, el 3º, el 2º formulario nunca me lo llega a mostrar, pongo aquí el código:

Código PHP:
if (! isset($_POST['btn_Aceptar'])) {
// si no se ha pulsado ninguna vez el botón de enviar el formulario para escoger el tipo de contacto, entonces muestro dicho formulario. 
// Aquí vendría el formulario. 
Código HTML:
 <form id="f_eleccion" name="f_eleccion" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
                           <!-- Aquí iría todo el formualrio --> 
Código PHP:
   unset($_POST['$btn_Aceptar']); // destruimos el valor de la variable para que la próxima vez que se cargue la página muestre de nuevo el 1er formulario
// pero no sé porque no la borra, si hacemos un 'echo' nos sigue mostrando el valor de la variable
// cerramos la llave del 'if' anterior
elseif ($_POST['btn_Aceptar'] == "infor") {
// en caso de que se haya enviado alguna vez el formulario anterior
// evaluamos si la opción escogida es esa, mostramos el 2º formulario
// Aquí vendría el 2º formulario
// Nunca entra aquí, la 1ª vez que se entra en la página, entra en el 'if', y después, escoja la opción que escoja en el 1er formulario, siempre me muestra el último, va directamente al 'else', la condición del 'elseif' nunca la cumple 
Código HTML:
 <form name="f_info" id="f_info" action="mailto:mi_direccion@mi_dominio.com?subject=Solicitud de Información" <?php $cuerpo_mensaje ?>  method="post" enctype="text/html">
                           <!-- Aquí iría todo el formualrio --> 
Código PHP:
   unset($_POST['$btn_Aceptar']); // destruimos el valor de la variable para que la próxima vez que se cargue la página muestre de nuevo el 1er formulario
// pero no sé porque no la borra, si hacemos un 'echo' nos sigue mostrando el valor de la variable
// cerramos la llave del 'elseif'
else {
// en caso de que la opción escogida no sea la anterior, mostramos el 3er y último formulario, ya que sólo hay dos opciones a escoger, y si no es una, es la otra
// Aquí iría el 3er formulario 
Código HTML:
 <form name="f_soporte" id="f_soporte" action="mailto:mi_direccion@mi_dominio.com?subject=Solicitud de Soporte" <?php $cuerpo_mensaje ?>  method="post" enctype="text/html">
                           <!-- Aquí iría todo el formualrio --> 
Código PHP:
   unset($_POST['$btn_Aceptar']); // destruimos el valor de la variable para que la próxima vez que se cargue la página muestre de nuevo el 1er formulario
// pero no sé porque no la borra, si hacemos un 'echo' nos sigue mostrando el valor de la variable
// cerramos la llave del 'if' anterior 

Un saludo.


P.D.: ¿Hay alguna función que recargue la página?, porque después de "enviar" el formulario de soporte, que realmente no envía nada, sólo abre la ventana del Outlook y te rellena los correspondientes campos, aunque ese es otro tema, e iría en otra categoría, se me queda siempre en ese formulario.

Última edición por rvelezb; 29/07/2008 a las 11:46
  #12 (permalink)  
Antiguo 29/07/2008, 13:08
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: Mostrar un formulario u otro en una misma página

Amigo creo que te estas complicando demasiado dime a ver explicame para que necesitas 3 formularios..?? Talvezz te puedo captar tu idea..

Para poder ayudarte de una mejor manera..

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #13 (permalink)  
Antiguo 29/07/2008, 13:15
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Mostrar un formulario u otro en una misma página

A ver, me explico, los formularios van en la página "contacto", uno es un formulario para pedir información sobre productos, y otro es para solicitar soporte técnico, y después está el primer formulario, que no es más que un Select, donde escojo el tipo de contacto que deseo, o bien, solicitar información de un producto, o bien, solicitar soporte técnico. En vez de hacer 3 páginas, 3 formularios, un formulario en cada página, lo que hago es tener una sola página, con los 3 formularios, y dependiendo de la opción que escoja, pues me muestra uno u otro.

¿Ha quedado más claro ahora?.


Un saludo.
  #14 (permalink)  
Antiguo 29/07/2008, 13:33
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: Mostrar un formulario u otro en una misma página

Ok mi amigo.. mira lo que podemos hacer es lo siguiente..

Colocas un Select y le das a escoger lo que quiere hacer osea tus selects.. Luego lo que debes es hacer es mostrar el formulario necesario.. ya sea colocandolo en un DIV..

Asi como te lo ejemplifico el amigo the_web_saint..

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #15 (permalink)  
Antiguo 29/07/2008, 13:42
 
Fecha de Ingreso: julio-2003
Ubicación: Sevilla
Mensajes: 81
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Mostrar un formulario u otro en una misma página

Ok, probaré de esa manera.
  #16 (permalink)  
Antiguo 29/07/2008, 13:43
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: Mostrar un formulario u otro en una misma página

Viendo el ejemplo de the_web_saint es lo que necesitas no se si es lo que buscas en si..???!??

Salu2.!! Pruebalo a ver que tal..
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:55.