Foros del Web » Programando para Internet » PHP »

ayuda por favor!

Estas en el tema de ayuda por favor! en el foro de PHP en Foros del Web. estoy terminando un formulario en php pero cuando el usuario carga datos en 3 textareas, estas se copian por medio de un jscript a una ...
  #1 (permalink)  
Antiguo 28/05/2007, 15:17
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
ayuda por favor!

estoy terminando un formulario en php

pero cuando el usuario carga datos en 3 textareas, estas se copian por medio de un jscript a una lista de seleccion multiple que despues es mandada por mail.
el tema es que solo me manda la ultima que el usuario carga.
alguien sabe como puedo solucionar esto?
es decir, no puedo mandar todas las selecciones multiples.

aca les dejo el codigo

<?php

$nombre = $_POST['nombre'];

$mail = $_POST['email'];

$header = 'From: ' . $mail . " \r";
$header .= "X-Mailer: PHP/" . phpversion() . " \r";
$header .= "Mime-Version: 1.0 \r";
$header .= "Content-type: text/plain; charset=utf-8859-1 bold \r\t";


$mensaje = "Nombre y apellido del titular: " .$nombre. " \r\t";
$mensaje .= "Su e-mail es: " .$_POST['email'] . " \r\t";
$mensaje .= "localidad: " . $_POST['localidad'] . " \r\t";
$mensaje .= "provincia : " . $_POST['idProvincia'] . " \r\t";
$mensaje .= "telefono : " . $_POST['telefono'] . " \r\t";
$mensaje .= "Solicita informacion acerca de : " . $_POST['productos'] . " \r\t";
$mensaje .= "La entrega se Realizaria en : " . $_POST['lugarEntrega'] . " \r\t";
$mensaje .= "en la Provincia de : " . $_POST['idprovinciaEntrega'] . " \r\t";
$mensaje .= "Limite de respuesta dia : " . $_POST['diaEntrega'] . " \r\t";
$mensaje .= "el mes : " . $_POST['mesEntrega'] . " \r\t";
$mensaje .= "Del año: " . $_POST['anoEntrega'] . " \r\t";
$mensaje .= "Otro Comentario : " . $_POST['comentarios'] . " \r\t";

$para = '[email protected]';
$mensaje .= "Enviado el " . date('d/m/Y', time());
$asunto = 'Presupuesto';
mail($para, $asunto, utf8_decode($mensaje), $header);
echo ' mensaje enviado correctamente';
?>

en el campo en rojo tendria que mandar todo lo que el cargo, pero solo manda el ultimo
  #2 (permalink)  
Antiguo 28/05/2007, 15:47
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 17 años, 6 meses
Puntos: 6
Re: ayuda por favor!

No se exactamente que pasa, imagino que el navegador solo identifica que el ultimo elemento insertado es el elejido. marcas como elejido al ultimo o a todos?
  #3 (permalink)  
Antiguo 28/05/2007, 16:19
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: ayuda por favor!

El problema seguramente esta en el codigo html del formulario. Intenta ponerlo aqui para que le demos un vistazo.
  #4 (permalink)  
Antiguo 28/05/2007, 21:56
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: ayuda por favor!

asi es el navegador marca todos pero solo toma el ultimo.

dejo el codigo como me pidieron.
muchas gracias por su ayuda.
para hacersela mas facil no toma todas las seleciones multiples de una lista sino que toma solo la ultima que se ingresa.
fijenese si esto esta bien o si hice lio je.
gracias de nuevo.
pd: se puede poner un echo dentro de una variable en un formulario?


este es el codigo de la lista donde se copian los productos ingresados:

<select name="productos" size="8" multiple="MULTIPLE" id="productos" style="width: 570px;" ondblclick="quitarProductos();">

este es el boton que agrega productos
<input name="Submit2" value="agregar" onclick="javascript:AgregarProductos();" type="button" />

si nesecitan el codigo jscript lo posteo despues
gracias de nuevo.
  #5 (permalink)  
Antiguo 29/05/2007, 16:21
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: ayuda por favor!

No tienes boton 'submit', si envias el formulario con el script AgregarProductos() seria bueno que pusieras el codigo.

Es necesario ver que codigo usas para mandar las variables a PHP, o si lo haces atraves del formulario deberias tener un boton submit.
  #6 (permalink)  
Antiguo 29/05/2007, 16:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: ayuda por favor!

La unica forma de recibir todos los elementos de un select multiple es agregandole [] al nombre ej:
Código:
<select name="productos[]">
Solo asi puedes recibir el array, y para enviarlo en tu correo como lista haces esto:

Código PHP:
$productos implode", "$_POST['productos'] ); 
  #7 (permalink)  
Antiguo 29/05/2007, 16:50
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
De acuerdo Re: ayuda por favor!

Prueba a poner esto en el select:

Código HTML:
<select name="productos[]" size="8" multiple="MULTIPLE" id="productosID" style="width: 570px;" ondblclick="quitarProductos();"> 
Y esto en el PHP:
Código PHP:
   .
   .
   .
$mensaje .= "telefono : " $_POST['telefono'] . " \r\t";
$mensaje .= "Solicita informacion acerca de : ".implode(",",$_POST['productos'])." \r\t";
$mensaje .= "La entrega se Realizaria en : " $_POST['lugarEntrega'] . " \r\t";
   .
   .
   . 
Con estos cambios te funcionara como deseas.

Explicacion:
El form te envia cada producto elejido de la siguiente forma:
producto="producto1", producto="producto2", producto="producto3"...

PHP recibe 3 variables con el mismo nombre, por lo que para PHP almacena los valores en la misma variable (producto) asi que el ultimo valor enviado sobreescribe los anteriores. Por eso solo te aparece la ultima opcion elegida.

Si el name de select lo pones "producto[]", el form enviara esto:
producto[]="producto1", producto[]="producto2", producto[]="producto3"...

Asi para PHP la variable "producto" es un array, y añade cada valor como un elemento del array:
producto[0] = "producto1"
producto[1] = "producto2"
producto[2] = "producto3" .......

Asi tendras en $_POST['producto'] un array con todos los productos elegido.

FIN
  #8 (permalink)  
Antiguo 29/05/2007, 17:12
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: ayuda por favor!

post solucionado!
hice otro formulario nuevo sin nesecidad de cargar productos ya que es una solicitud de presupuesto. mas facil para mi y mas facil para el usuario

igualmente muchisimas gracias a todos por haber ayudado y no les quepa dudas que YA me voy a poner a practicar con eso de mandar multiples selecciones. voy a ayudarlos en lo mas que pueda.
no duden en contar con mi ayuda por si nesecitan algo

es que soy junior con esto del php y hoy en dia es uno de los mas implementados en formularios.
para que se den una idea:
cree todo el formulario de cero y en ves de terminar las variables con \r\t las suplante por \n y me vi que me llegaba todo ordenado.
errores de principiante que le dicen

muchisimas gracias a todos!! y a practicar que asi se crece!


@wrkjmg : gracias por la explicacion ya la voy a poner en practica!

Última edición por lasvenas; 29/05/2007 a las 17:21
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 19:00.