Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Procesar datos formulario

Estas en el tema de Procesar datos formulario en el foro de PHP en Foros del Web. Buenas me llamo Berny! Llevo un tiempo buscando soluciones para la pagina web que estoy construyendo pero aún no había tenido la posibilidad de preguntar ...
  #1 (permalink)  
Antiguo 04/07/2014, 10:56
Avatar de bernyx123  
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 13 años, 10 meses
Puntos: 0
Procesar datos formulario

Buenas me llamo Berny! Llevo un tiempo buscando soluciones para la pagina web que estoy construyendo pero aún no había tenido la posibilidad de preguntar algo que de verdad me diera problemas graves.

Ahora... ya en las ultimas y habiendo hecho mil pruebas... os pido ayuda con una cosa muy simple pero imposible para mi... (soy novato)

Tengo un formulario html para hacer unas reservas, tengo 3 campos <Select> que hacen una consulta a una bbdd, primero lo hace uno, después el otro y después el otro (creo que esto se le llama select multiple).

El formulario funciona a la perfección, pero al recibir los datos en el email se muestra el campo "value" y no la opcion seleccionada (el texto) de las opciones del select.

Ejemplo:
<select name="destino">
<option value="1">Barcelona</option>

Y en vez de recibir Destino: Barcelona en mi email, recibo el numero 1.

He estado leyendo manuales y entiendo que el value es la información inicial de cada option, pero necesito recibir la información que el cliente selecciona, no del value.
A la vez, utilizo el value para hacer las consultas en las otras tablas de la bbdd. Si utilizara el mismo nombre y value en cada option no podría hacer las consultas deseadas.


Si queda alguna duda pondré el código entero para que lo entendáis.

Muchas gracias por vuestra ayuda y disculpad las molestias.
  #2 (permalink)  
Antiguo 04/07/2014, 11:49
Avatar de Ilidam  
Fecha de Ingreso: julio-2009
Ubicación: Veracruz
Mensajes: 108
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Procesar datos formulario

yo lo hago de esta manera
Código PHP:
Ver original
  1. echo '<select name="modelo" onchange="modelo(this.value);">';
  2.         echo '<option value="0">---SELECCIONE---</option>';
  3.         $sql = "SELECT * FROM modelo WHERE id_marca='".$id."' ORDER BY  modelo";
  4.         $rs  = mysql_query($sql);
  5.         if(mysql_num_rows($rs)!=0){
  6.             while($row=mysql_fetch_assoc($rs)){
  7.                 echo '<option value="'.$row['id'].'">'.$row['modelo'].'</option>';
  8.             }
  9.         }
  10.         echo '</select>';
  #3 (permalink)  
Antiguo 04/07/2014, 12:21
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Procesar datos formulario

Claro recibirás 1 por que guardas en ese option el valor 1, por lo que es facil después hacer que te llege con un simple if else.

Antes de enviar el email comprueba que valor a sido seleccionado y asignale un nombre para recibirlo por email, ejemplo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Aqui ya se ha seleccionado alguna opcion....
  4.  
  5. if($_POST['destino'] == 1) { // Aqui es que ha seleccionado el valor 1
  6.  
  7. $value = 'Barcelona';
  8.  
  9. }else {  // Aqui el valor seria diferente a 1
  10.  
  11. $value = 'Madrid';
  12.  
  13. }
  14.  
  15. // Y ahora enviarias el email:
  16.  
  17. mail('[email protected]', 'Asunto', $value, ........);
  18.  
  19. ?>

Bueno así devería hacer lo que pides.

Un saludo.
  #4 (permalink)  
Antiguo 05/07/2014, 04:38
Avatar de bernyx123  
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Procesar datos formulario

Muchas gracias por vuestras respuestas :) disculpad que no halla respondido antes tal y como yo hubiera deseado pero encontré la solución a dicho problema.

Dejo la SOLUCIÓN por si algún día alguien se encuentra en mi jodida situación (yo me tire de los pelos)

Los pasos son super faciles (copiar y pegar)

Copia esta funcion y ponla en tu archivo html:

<script>
function dimePropiedades(){
var indice = document.formulario.destino.selectedIndex;
var textoEscogido = document.formulario.destino.options[indice].text;
if (textoEscogido=="SELECCIONE")
{document.formulario.destino2.value = '';}
else
{document.formulario.destino2.value = textoEscogido;}
document.formulario.submit();
</script>

1-//formulario es el nombre de nuestro formulario y destino es el nombre del campo con el que tenemos problemas.



2-//Crearemos un input dentro del formulario con el atributo hidden para que no se vea, podeis ponerlo donde queráis, no afectara.

<input type="hidden" name="destino2" />

3-//A la mitad de la función, donde se ejecuta el IF escribiremos el nombre del input destino2.

4-//Añadiremos el atributo onsubmit a nuestro form.

<form name="formulario" action="enviar.php" method="post" onsubmit="return dimePropiedades()">

No os preocupeis, aunque el submit final se haga dentro de la funcion, funciona correctamente al pulsar el boton de enviar.

Por ultimo añadiis en vuestro archivo php (enviar.php):
$destino2 = $_POST['destino2'];

(la linea es practicamente identica a los otros campos que teneis puestos).

Y ya esta, guardadlo todo y probad ^^

FUNCIONA 100%

Saludos y muchas gracias a todos.

Etiquetas: formulario, values
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 22:21.