PHP - Formulario y arrays

 
Vista:

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.

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de abzerox
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Formulario y arrays

Publicado por abzerox (157 intervenciones) el 30/11/2017 06:01:35
Hola Dod, te comparto un ejemplo capaz te sirve como guia para solucionar tu problema:

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
<?php
 
    // Array con los mensajes de error
    $errors = array(
        'name' => ''
    );
 
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        // Realizo las validaciones nesarias...        
        if (!isset($_POST['name']) || empty($_POST['name'])) {
            $errors['name'] = 'Campo Requerido.';
        } else {
            // Aqui ya puedes hacer la persistencia de datos, ya sea a una BD, archivo, etc. 
            echo 'Name '. $_POST['name'];
        }
    }
?>
 
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
        <label for="name">Name:</label>
        <input type="text" name="name">
        <p style="color: #CC1111";><?php echo $errors['name']; ?></p>
        <input type="submit" value="Submit">
    </form>
</body>
</html>



Comentanos.
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