Foros del Web » Programando para Internet » PHP »

Problemas con Formulario

Estas en el tema de Problemas con Formulario en el foro de PHP en Foros del Web. Buenas tardes! Tengo un problema con un formulario que hice con DW en HTML Coloque una opcion en cascada (lista menú) alli mismo puse la ...
  #1 (permalink)  
Antiguo 10/05/2010, 15:20
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires, Argentina
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Problemas con Formulario

Buenas tardes!

Tengo un problema con un formulario que hice con DW en HTML
Coloque una opcion en cascada (lista menú) alli mismo puse la opcion para que aprentando la tecla Ctr, puedan seleccionar más de un item, hasta alli todo bien... !!!

Lo envio mediante un sendmail.php, me llega perfecto, con todos los campos completos y correctos, peroooo! en la opcion donde tendria que aparecer mas de un item, solo aparece el ultimo que he seleccionado, y no lo 2 o 3 que seleccione con la tecla Ctr!!!

Le adjunto los codigo!
Podrian darme una mano con esto? Muchas gracias!!!

Codigo del fomulario:

<form action="sendmail_lp.php" method="POST">
<p align="left">
<span class="Estilo7"><strong>Nombre y Apellido:</strong> <span class="Estilo8">.................................. ......................</span> <strong>N&ordm; Documento:</strong><br />
<input name="Nombres" type="text" id="Nombres" size="35" />
<span class="Estilo8">......... ..</span>
<input name="Documento" type="text" id="Documento" size="35" />
<br />
<br />
<strong>Domicilio y Localidad: </strong><span class="Estilo8">.................................. .................</span><strong>Tel&eacute;fono Fijo/Celular: </strong><br />
<input name="Domicilio" type="text" id="Domicilio" size="35" />
<span class="Estilo8"> .... ....... </span>
<input name="Telefono/Celular" type="text" id="Telefono/Celular" size="35" />
<br />
<br />
<strong>E-mail:<span class="Estilo8">.....</span></strong><span class="Estilo8">...................... .................................................. ..</span><strong>Escuela y Localidad: </strong><br />
<input name="Email" type="text" id="Email" size="35" />
<span class="Estilo8">............ </span>
<input name="Escuela" type="text" id="Escuela" size="35" />
<br />
<br />
<strong>Cursos:</strong> ( para seleccionar varios, mantenga oprima la tecla Ctr )<br />
<select name="Cursos" size="03" multiple>
<option value="avion" selected="selected">avion</option>
<option value="tren">tren</option>
<option value="micro">micro</option>
<option value="lancha">lancha</option>
<option value="barco">barco</option>
<option value="subte">subte</option>

</select>
<br />
<br />
<strong>Seleccione cantidad de cuotas:</strong><br />
<select name="Cuotas" id="Cuotas">
<option selected="selected">1 Cuota</option>
<option>3 Cuotas</option>
<option>6 Cuotas</option>
<option>8 Cuotas</option>
<option>12 Cuotas</option>
</select>
</span></p>
<p align="left"><span class="Estilo13">Dejenos su mensaje:</span><br />
<span class="Estilo7">
<textarea name="Mensaje" cols="40" id="Mensaje"></textarea>
<br />
</span>

<input type="hidden" name="recipient" value="[email protected]">
<input type="hidden" name="from" value="Desde la Web">
<input type="hidden" name="reply-to" value="[email protected]">
<input type="hidden" name="subject" value="CONSULTA DESDE LA WEB">

<input name="Restablecer" type="reset" id="Restablecer" value="Restablecer" />
<input name="Enviar" type="submit" id="Enviar" value="Enviar" />
</p>
</form>



Codigo del Sendmail:

<?
if (empty($_POST))
print("Por favor, complete el correctamente el formulario<br><a href=\"javascript:history.back()\">Volver</a>");
else {
$body = "";
$head = "From: ".$_POST['from']."\r\n"."Reply-To: ".$_POST['reply-to'];
$hide = array("recipient", "redirect", "subject", "from", "reply-to");
foreach ($_POST as $key => $value)
if (!in_array($key, $hide))
$body .= $key.": ".$value."\n";
ini_set(sendmail_from,'[email protected]');
/*El mail este es de donde sale el mail, si la cuenta que esta configurada en el servidor es la que te puse aca, debería andar.*/
if (mail($_POST['recipient'], $_POST['subject'], $body, $head))
echo "Su formulario se envio correctamente!\n";
else
echo "Ha ocurrido un error en el envio\n";
}
?>
&nbsp;</font></div></td>
</tr>
</table>
</div>
<body oncontextmenu="return false" onkeydown="return false">
</body>
</html>

  #2 (permalink)  
Antiguo 11/05/2010, 08:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas con Formulario

El nombre del campo debe tener el formato "nombre[]" para que recibas los elementos seleccionados como un array.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 12/05/2010, 08:14
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires, Argentina
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problemas con Formulario

Gracias David por la ayuda!

Pero como soy un tanto novato en esto no te entiendo bien?

El campo nombre, donde tendria que ir? es aqui mismo en el codigo del Menu lista?

<select name="Cuotas" id="Cuotas">
<option selected="selected">1 Cuota</option>
<option>3 Cuotas</option>
<option>6 Cuotas</option>
<option>8 Cuotas</option>
<option>12 Cuotas</option>
</select>

Muchas gracias David!!!!
  #4 (permalink)  
Antiguo 12/05/2010, 08:25
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas con Formulario

Sí, el atributo name:
Código HTML:
Ver original
  1. <select name="Cuotas[]">
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 12/05/2010, 08:59
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires, Argentina
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problemas con Formulario

Ok David, entonces a ver si entendi, esto deberia quedar asi?:

Antes te habia pasado un codigo que no era el correcto este es el del problema:

<strong>Cursos:</strong> ( para seleccionar varios, mantenga oprima la tecla Ctr )<br />
<select name="Cursos" size="03" multiple>
<option value="avion" selected="selected">avion</option>
<option value="tren">tren</option>
<option value="micro">micro</option>
<option value="lancha">lancha</option>
<option value="barco">barco</option>
<option value="subte">subte</option>

</select>

Tengo que cambiar <option value= x <select name="avion...
  #6 (permalink)  
Antiguo 12/05/2010, 09:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas con Formulario

Al name agrégale los corchetes al final, sólo eso, como te indiqué en el ejemplo.

Lee al manual: http://www.php.net/manual/en/languag...s.external.php
(Ejemplo 3)

Y esta entrada de las FAQs: http://www.php.net/manual/en/faq.htm...elect-multiple
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 12/05/2010, 09:34
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires, Argentina
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problemas con Formulario

Que lio, hice esto que me dijiste, pero no logro que llego a mi mail varios campos!

Me juego lo ultimo,mira, esto s lo que hice, agregue los [] asi:

<strong>Cursos:</strong> ( para seleccionar varios, mantenga oprima la tecla Ctr )<br />
<select name="Cursos[] " size="03" multiple="yes">
<option value="avion" selected="selected">avion</option>
<option value="tren">tren</option>
<option value="micro">micro</option>
<option value="lancha">lancha</option>
<option value="barco">barco</option>
<option value="subte">subte</option>

</select>


Lo que me llega a mi mail es esto:

Cursos: Array (aqui deberian estar lo que seleccione)

Última edición por RatonDigital; 12/05/2010 a las 10:43
  #8 (permalink)  
Antiguo 12/05/2010, 11:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas con Formulario

Bien, por lo menos ya recibes el array.

Ahora tienes que recorrerlo y realizar las acciones que deseas (foreach), o, si solo quieres el listado separado por algún carácter, puedes usar implode.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 12/05/2010, 12:35
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires, Argentina
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problemas con Formulario

Que lio con esto! Estuve mirando los tutoriales y no logro encontrar donde debo hacer las acciones de foreach o implode!

Por último te adjunto como quedo mi código del form y el del php


Formulario:

Código HTML:
Ver original
  1. <select name="Cursos[]" size="2" multiple="MULTIPLE">
  2.                           <option>Elejir Curso</option>
  3.                           <option value="Quimica">La ense&ntilde;anza de la quimica</option>
  4.                           <option value="Cuenca Matanza-Riachuelo">Problemas socioambientales:Cuenca Matanza-Riachuelo</option>
  5.                           <option value="Educaci&oacute;n ambiental">Naturaleza, Sociedad y educaci&oacute;n ambiental</option>
  6.                           <option value="Nuevos compromisos">Nuevos compromisos:Ciudadania,democracia y derechos humanos</option>
  7.                           <option value="Derechos de los ni&ntilde;os">Derechos de los ni&ntilde;os</option>
  8.                           <option value="Flores 1">Plantas, Flores e inflorescencia</option>
  9.                           <option value="Flores 2">Polinizaci&oacute;n, abejas y comunicaci&oacute;n</option>
  10.                           <option value="Flores 3">Flores,frutos,semillas y huerta escolar</option>
  11.                           <option value="VIH/SIDA">VIH/SIDA:La escuela como instancia de cambio</option>
  12.                         </select>

Sendmail:

Código PHP:
Ver original
  1. <?
  2. if (empty($_POST))
  3.         print("Por favor, complete el correctamente el formulario<br><a href=\"javascript:history.back()\">Volver</a>");
  4. else {
  5.         $body = "";
  6.         $head = "From: ".$_POST['from']."\r\n"."Reply-To: ".$_POST['reply-to'];
  7.         $hide = array("recipient", "redirect", "subject", "from", "reply-to");
  8.         foreach ($_POST as $key => $value)
  9.             if (!in_array($key, $hide))
  10.                 $body .= $key.": ".$value."\n";
  11.         ini_set(sendmail_from,'[email protected]');
  12.         /*El mail este es de donde sale el mail, si la cuenta que esta configurada en el servidor es la que te puse aca, debería andar.*/
  13.         if (mail($_POST['recipient'], $_POST['subject'], $body, $head))
  14.             echo "Su formulario se envio correctamente!\n";
  15.         else
  16.             echo "Ha ocurrido un error en el envio\n";
  17. }
  18. ?>


Es mucho pedir que me indiques donde y que linea de código tengo que agregar!? Me hablas de palabras muy tecnicas que no entiendo!!! :(

Muchas gracias!!!

Última edición por RatonDigital; 12/05/2010 a las 13:19
  #10 (permalink)  
Antiguo 13/05/2010, 12:25
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires, Argentina
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problemas con Formulario

Bueno ya esta solucionado! Gracias David de todas formas, habia que agregar unas lineas más en el sendmail.php
Para el que le sirva aqui va la solución! Gracias también Gabito Grupos!!!!!

Código PHP:
Ver original
  1. <?
  2. if (empty($_POST))
  3.         print("Por favor, complete el correctamente el formulario<br><a href=\"javascript:history.back()\">Volver</a>");
  4. else {
  5.         $body = "";
  6.         $head = "From: ".$_POST['from']."\r\n"."Reply-To: ".$_POST['reply-to'];
  7.         $hide = array("recipient", "redirect", "subject", "from", "reply-to");
  8.         foreach ($_POST as $key => $value)
  9.         {
  10.             if (!in_array($key, $hide))
  11.             {
  12.                 if (is_array($value))
  13.                 {
  14.                     $body .= $key.":\n";
  15.                     $cant=count($value);
  16.                     for($i=0;$i<$cant;$i++)
  17.                         $body .= "  - ".$value[$i]."\n";
  18.                 }
  19.                 else
  20.                     $body .= $key.": ".$value."\n";
  21.             }
  22.         }
  23.         ini_set(sendmail_from,'[email protected]');
  24.         /*El mail este es de donde sale el mail, si la cuenta que esta configurada en el servidor es la que te puse aca, debería andar.*/
  25.         if (mail($_POST['recipient'], $_POST['subject'], $body, $head))
  26.             echo "Su formulario se envio correctamente!\n";
  27.         else
  28.             echo "Ha ocurrido un error en el envio\n";
  29. }
  30. ?>
  #11 (permalink)  
Antiguo 13/05/2010, 13:50
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problemas con Formulario

RatonDigital

asegurate de poner tu codigo... dentro de la zona del codigo...


EJ: insertar codigo PHP

Cita:
ya que si no haces esto... haces mas dificil la lectura del codigo...
  #12 (permalink)  
Antiguo 13/05/2010, 14:24
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires, Argentina
Mensajes: 23
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problemas con Formulario

ok! pero como lo puse en los dos ultimo ejemplos, estan mal?

Etiquetas: formulario
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 04:06.