PHP - Rescatar valor formulario de un select

 
Vista:
sin imagen de perfil
Val: 19
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Rescatar valor formulario de un select

Publicado por josema (9 intervenciones) el 23/02/2018 19:51:46
Hola soy novatillo en esto tengo este formulario que apunta a un fichero que procesa la información.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<form method="POST" action="registra.php">
 
    <p>Nombre: <input type="text" name="nombre" size="20"></p>
    <p>Fecha: <input type="text" value="<?php echo date("Y-m-d");?>" name="fecha" size="10" readonly="true">
    <p>Tipo de vehículo:
	<select name="vehiculo[]">
		<option value="Turismo">Turismo</option>
		<option value="Todoterreno">Todoterreno</option>
		<option value="Furgoneta">Furgoneta</option>
		<option value="Quad">Quad</option>
		<option value="Agricola">Maquinaria Agrícola</option>
 
	</select><br>
 
	<p>Marca y Modelo: <input type="text" name="marca" size="20"></p>
    <p>Matrícula: <input type="text" name="matricula" size="20"></p>
    <p>Valor Fiscal: <input type="number" name="valor" size="20"></p>
 
 
    <p><input type="submit" value="Guardar datos" name="B1"></p>
 
Y el que procesa
<?php
 
// Recibimos por POST los datos procedentes del formulario   
 
$nombre = $_POST["nombre"];
$marca = $_POST["marca"];
$matricula = $_POST["matricula"];
$fecha = $_POST["fecha"];
$valor = $_POST["valor"];
$tipo = 0.06;
$TPO = $valor*$tipo;
$tipo_vehiculo = $_POST["vehiculo"];
 
//recorremos el array de cervezas seleccionadas. No olvidarse q la primera posición de un array es la 0 
 
for ($i=0;$i<count($tipo_vehiculo);$i++)
{
echo "<br> Tipo Vehiculo " . $i . ": " . $tipo_vehiculo[$i];
echo "<br>";
}
 
 
$colegio = 3.75;
$dgt= 1;
$honorarios = 54.5;
$iva = $honorarios*0.21;
$total = $TPO+$dgt+$colegio+$honorarios+$iva;
 
 
echo $tipo;
echo "<br>";
echo $TPO;
 
 
// Abrimos la conexion a la base de datos
include("abre_conexion.php");
 
$_GRABAR_SQL = "INSERT INTO $tabla_db1 (nombre,marca,matricula,fecha,valor,TPO,dgt,colegio,honorarios,iva,total,tipo_vehiculo) VALUES ('$nombre','$marca','$matricula','$fecha','$valor','$TPO','$dgt','$colegio','$honorarios','$iva','$total','$tipo_vehiculo')";
mysql_query($_GRABAR_SQL);
 
// Cerramos la conexion a la base de datos
include("cierra_conexion.php");
 
// Confirmamos que el registro ha sido insertado con exito
 
echo "
<p>Los datos han sido guardados con exito.</p>   

<p><a href='javascript:history.go(-1)'>VOLVER ATRÁS</a></p>
";
?>

Pero no consigo que funcione bien.... creo que me estoy liando con los nombres de las variables "tipo_vehiculo" al declararlas y usarlas luego en el bucle for...

Alquien puede darme luz!!!

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 20
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Rescatar valor formulario de un select

Publicado por Cbastian (7 intervenciones) el 23/02/2018 21:14:43
Hola,

Mira la variable $tipo_vehiculo
está llegando al PHP como un array; esto porque en el html el name del select es "vehiculo[]", usa estas llaves solo cuando sea un select tipo múltiple, para poder enviar en este caso varios vehículos. Ya que este no es el caso te recomiendo que dejes el select así:

1
2
3
4
5
6
7
<select name="vehiculo">
    <option value="Turismo">Turismo</option>
    <option value="Todoterreno">Todoterreno</option>
    <option value="Furgoneta">Furgoneta</option>
    <option value="Quad">Quad</option>
    <option value="Agricola">Maquinaria Agrícola</option>
</select>

Fíjate que solo quité los [] en el name.

Por otro lado en el PHP ya no requieres de ningún for para acceder a tipo_vehiculo ya que puedes hacerlo directamente con $tipo_vehiculo porque solo vas a seleccionar un vehículo . Ya si necesitas seleccionar varios cambia la historia.

No olvides comentar si tienes algún otro problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Rescatar valor formulario de un select

Publicado por josema (9 intervenciones) el 24/02/2018 10:39:00
Gracias, al final era más sencillo de lo que pensaba!!!
Ahora quiero que el formulario inicial no pueda tener algunos campos vacios, y si los tiene salga un mensaje diciendo que campo falta., y hasta que todos los campos no estén completos no se pueda enviar el formulario. He puesto este código en javascript pero no funciona... no me valida nada y envia sin comprobar podrías revisarlo??
Mil gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<html>
 
<head>
<title>Guardar datos en una base de datos</title>
 
<script type="text/javascript">
function validacion() {
 
  if (document.getElementById('nombre').value == ""){
    // Si no se cumple la condicion...
    alert('[ERROR] El campo NOMBRE debe tener un valor de...');
    return false;
  }
  else if (document.getElementById('marca').value == ""){
    // Si no se cumple la condicion...
    alert('[ERROR] El campo MARCA debe tener un valor de...');
    return false;
  }
 
  else if (document.getElementById('valor').value == ""){
    // Si no se cumple la condicion...
    alert('[ERROR] El campo debe tener un valor de...');
    return false;
  }
 
  // Si el script ha llegado a este punto, todas las condiciones
  // se han cumplido, por lo que se devuelve el valor true
  return true;
}
</script>
 
</head>
 
<body>
 
<form method="POST" action="registra.php">
 
    <p>Nombre: <input type="text" name="nombre" size="20"></p>
    <p>Fecha: <input type="text" value="<?php echo date("Y-m-d H:i:s");?>" name="fecha" size="20" readonly="true">
 
	<p>Tipo de vehículo:
	<select name="vehiculo">
		<option value="Turismo">Turismo</option>
		<option value="Todoterreno">Todoterreno</option>
		<option value="Furgoneta">Furgoneta</option>
		<option value="Ciclomotor">Ciclomotor</option>
		<option value="Quad">Quad</option>
		<option value="Agricola">Maquinaria Agrícola</option>
 
	</select><br>
 
	<p>Marca y Modelo: <input type="text" name="marca" size="20"></p>
    <p>Matrícula: <input type="text" name="matricula" size="20"></p>
    <p>Valor Fiscal: <input type="number" name="valor" size="20"></p>
 
 
    <p><input type="submit" onsubmit="return validacion()" value="Guardar datos" name="B1"></p>
 
</form>
 
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar