Formulario y arrays
Publicado por DoD (1 intervención) el 29/11/2017 22:35:14
Hola, tengo que hacer un pequeño formulario y que me muestre los errores por arrays.
Esto lo consigo, pero si quiero mostrar lo que seleciono no lo consigo y me gustaria saber hacerlo. Pero por más que miero en internet más me lio.
Aqui tengo lo que me piden más o menos y funciona. Pero no evnia nada al no haberlo completado.
Y este codigo es como lo intentado poner para que envie las cosas, en uno hasta he puesto dos tipos en un array, mediante un foreach que he visto por google/foros, pero me saltaba en la seleción un error de undefined.
Esto lo consigo, pero si quiero mostrar lo que seleciono no lo consigo y me gustaria saber hacerlo. Pero por más que miero en internet más me lio.
Aqui tengo lo que me piden más o menos y funciona. Pero no evnia nada al no haberlo completado.
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
<!DOCTYPE html> <html lang="es">
<head>
<meta charset="UTF-8" />
<title></title> </head>
<body>
<?php
print_r($_POST); //imprime los post mediante arrays dando el resultado de lo que obtiene
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<fieldset>
<label for="vivienda">Tipo de vivienda</label>
<select name="vivienda[]">
<option value=""></option>
<option value="piso">piso</option>
<option value="adosado">adosado</option>
<option value="chalet">chalet</option>
<option value="casa">casa</option>
</select><br />
<label for="zona">Zona</label>
<select name="zona[]">
<option value=""></option>
<option value="madrid">madrid</option>
<option value="barcelona">barcelona</option>
<option value="valencia">valencia</option>
<option value="lugo">lugo</option>
<option value="sevilla">sevilla</option>
</select>
<br />
<label for="direccion">Dirección</label>
<input type="text" name="direccion[]" value="<?=$_POST['dirección']?>" /><br/>
<label for="habitaciones" name="habitaciones[]" >Numero de dormitorios:</label>
<input type="radio" name="radio" value="1"/> 1
<input type="radio" name="radio" value="2"/>2
<input type="radio" name="radio" value="3"/>3
<input type="radio" name="radio" value="4"/>4
<input type="radio" name="radio" value="5"/>5 <br />
<label for="precio">Precio:</label>
<input type="text" name="precio[]" value="<?=$_POST['precio']?>" pattern="[0-9]{10}" />€ <br /><br />
<input type="submit" value="insertar vivienda"/>
<br />
</fieldset>
</form>
</body>
</html>
Y este codigo es como lo intentado poner para que envie las cosas, en uno hasta he puesto dos tipos en un array, mediante un foreach que he visto por google/foros, pero me saltaba en la seleción un error de undefined.
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html> <html lang="es">
<head>
<meta charset="UTF-8" />
<title></title> </head>
<body>
<?php
print_r($_POST); //imprime los post mediante arrays dando el resultado de lo que obtiene
/* falla el if, si le quito el formulario va, con el no...con algun echo si.
if($_POST['vivienda'] && $_POST['zona[]'] && $_POST['direccion[]'] && $_POST['habitaciones[]'] && $_POST['precio[]']){
//echo ('<h1>La vivienda es '.$_POST['vivienda'].' en la zona de '.$_POST['zona'].' una ciudad en '.$_POST['direccion'].'cuenta con '.$_POST['habitaciones'].' habitaciones y vale '.$_POST ['precio'].'<br />');
/*
//No funciona, salta not undifined es para el metodo del foreach
function vivienda(){
return array("piso","adosado","chalet","casa");
}
$vivienda = vivienda();
/*
if($_POST['vivienda']=='piso')
echo ('piso ');
if($_POST['vivienda']=='adosado')
echo ('adosado ');
if($_POST['vivienda']=='chalet')
echo ('chalet ');
if($_POST['vivienda']=='casa')
echo ('casa ');
if($_POST['zona']=='madrid')
echo ('madrid');
if($_POST['zona']=='barcelona')
echo ('barcelona');
if($_POST['zona']=='valencia')
echo ('valencia');
if($_POST['zona']=='lugo')
echo ('lugo');
if($_POST['zona']=='sevilla')
echo ('sevilla');
if($_POST['radio']=='on')
echo ('- 1<br />');
if($_POST['radio']=='on')
echo ('- 2<br />');
if($_POST['radio']=='on')
echo ('- 3<br />');
if($_POST['radio']=='on')
echo ('- 4<br />');
if($_POST['radio']=='on')
echo ('- 5<br />');
}else{
echo "rellene...";
*/
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<fieldset>
<label for="vivienda">Tipo de vivienda</label>
<select name="vivienda">
<option value=""></option>
<option value="piso">piso</option>
<option value="adosado">adosado</option>
<option value="chalet">chalet</option>
<option value="casa">casa</option>
</select><br />
<!--metodo visto en internet, no funciona
<label for="vivienda">Tipo de vivienda</label>
<select name="vivienda">
<?php foreach ($vivienda as $v): ?> {
<option value=""><?php echo $f ?></option>
<?php endforeach; ?>
</select><br />!-->
<label for="zona">Zona</label>
<select name="zona[]">
<option value=""></option>
<option value="madrid">madrid</option>
<option value="barcelona">barcelona</option>
<option value="valencia">valencia</option>
<option value="lugo">lugo</option>
<option value="sevilla">sevilla</option>
</select>
<br />
<label for="direccion">Dirección</label>
<input type="text" name="direccion[]" value="<?=$_POST['dirección']?>" /><br/>
<label for="habitaciones" name="habitaciones[]" >Numero de habitaciones:</label>
<input type="radio" name="radio" value="1"/> 1
<input type="radio" name="radio" value="2"/>2
<input type="radio" name="radio" value="3"/>3
<input type="radio" name="radio" value="4"/>4
<input type="radio" name="radio" value="5"/>5 <br />
<label for="precio">Precio:</label>
<input type="text" name="precio[]" value="<?=$_POST['precio']?>" pattern="[0-9]{10}" />€ <br /><br />
<input type="submit" value="insertar vivienda"/>
<br />
</fieldset>
</form>
<?php
//}//cierre del if
?>
</body>
</html>
Valora esta pregunta


0