PHP - Problema en formulario

 
Vista:
sin imagen de perfil

Problema en formulario

Publicado por ssainz (5 intervenciones) el 13/06/2016 20:34:52
Buenas tardes,

Tengo el siguiente formulario:
Los datos que me muestra el desplegable son correctos , pero a la hora de llevar el dato que selecciono, al "resul_form2.php" tengo problemas porque no me lleva nada.
Como podeís ver, obtengo datos del "Formulario1", y esos datos los traigo perfectamente.

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
<?php
include 'connection.php';
?>
 
<html>
 
<head>
  <title>Demo de menú desplegable</title>
</head>
 
<body>
 
<?php
echo $_POST['Formulario1'];
?>
	<pre>
    	<strong>DEBUG:</strong>
        <?php
	print_r($_POST);
	?>
    </pre>
 
  <div align="center">
    <h1>Demo de menú desplegable 2</h1>
 
    <p>Seleccione <?php echo $_POST['Formulario1']; ?></p>
    <p><?php echo $_POST['Formulario1']; ?>
 
	<form action="resul_form2.php" method="post">
      <select name="Formulario2" style="width:400;">
 
		 <?php
		$dato = $_POST['Formulario1'];
	        $query = 'SELECT COUNT(*), '.$dato.' FROM PuntosDeVenta GROUP BY '.$dato.'';
		$result = mysqli_query($link,$query) or die('Consulta fallida: ' . mysqli_error());
		while ($line = mysqli_fetch_array($result, MYSQLI_ASSOC))
		{
			echo "<option  value='".$line['ID']."'>".$line[$dato]."</option>";
   		}
       		?>
      </select>
      <input type="submit" name="submit" value="Submit" />
   </form>
 
   </p>
  </div>
</body>
 
</html>

Gracias por todo!!!!
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 kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema en formulario

Publicado por kip (877 intervenciones) el 13/06/2016 20:46:26
Hola, como estas recibiendo el valor que envias? podrias colocar el codigo para ver?

Por cierto, aqui en esta linea:
1
echo "<option value='".$line['ID']."'>".$line[$dato]."</option>";

Debes colocar correctamente el nombre de la columna en la tabla, $line['ID'] aqui ID deberia ser igual a como esta en la tabla, tal vez sea id en minúsculas, ten en cuenta eso.

Saludos
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

Problema en formulario

Publicado por ssainz (5 intervenciones) el 13/06/2016 21:20:09
Hola Kip,
Antes de nada, gracias por tu respuesta.

No entiendo muy bien cual es tu pregunta. Los datos que me muestra esa linea de codigo que me pones, hace que en mi navegador aparezca un listado desplegable.
En mi base de datos tengo una columna llamada ID si es a lo que te refieres.

El problema que tengo es que cuando selecciono un campo de ese desplegable, no se como hacer para llevarlo al resul_form2.php.

Perdon por mi ignorancia. He buscado mucho por el foro, pero no he dado con la solucion.

Muchas gracias!!!!
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
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema en formulario

Publicado por kip (877 intervenciones) el 13/06/2016 22:00:39
Pues podrias hacer click en submit no? De tu codigo del fromulario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form action="resul_form2.php" method="post">
<select name="Formulario2" style="width:400;">
 
<?php
$dato = $_POST['Formulario1'];
$query = 'SELECT COUNT(*), '.$dato.' FROM PuntosDeVenta GROUP BY '.$dato.'';
$result = mysqli_query($link,$query) or die('Consulta fallida: ' . mysqli_error());
while ($line = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
echo "<option value='".$line['ID']."'>".$line[$dato]."</option>";
}
?>
</select>
<input type="submit" name="submit" value="Enviar datos" /> // AQUI
</form>

Y para recibirlo en resul_form2.php, seria algo asi:
1
2
3
4
if(isset($_POST['Formulario2'])){
$variable_form1 = $_POST['Formulario2'];//almacenas la variable recibida
echo $variable; //muestras la variable
}

Intenta de esa forma, lo que no entiendo es porque colocas esto $line[$dato], ya que te va a mostrar siempre el mismo texto en las opciones desplegables.

Nos cuentas como te fue.

Saludos
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

Problema en formulario

Publicado por ssainz (5 intervenciones) el 14/06/2016 16:42:18
Hola Kip,

Gracias de nuevo por tu ayuda. He probado el código que me mandas, y me sigue pasando lo mismo.
Si te parece bien, te pongo todo el código que tengo a ver si puedes ver el origen del problema.
Tengo un primer formulario (form1.php):


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
<html>
<head>
 
    <title>titulo</title>
    <link href="/style/principal.css" rel="stylesheet" type="text/css">
 
</head>
 
<body>
 
	<div class="main_page">
		<div class="page_header floating_element">
        	<img src="/logo/LogoDeia.png" alt="Logo DEIA" class="floating_element"/>
        		<span class="floating_element">DISTRIBUCION.EISA.COM</span>
		</div>
 
	<div class="content_section floating_element">
		<div class="section_header section_header_red">
			<div id="about"></div>
          -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-Formulario 1-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-</div>
 
        <div class="content_section_text">
    		<p>¿Por qué campo desea realizar el filtro:</p>
   				<form action="resul_form1.php" method="post">
   				 <select name="Formulario1">
                 	<!El primero es el dato que envia, el segundo el que muestra>
        			<option value="Nombre">Nombre</option>
        			<option value="Poblacion">Poblacion</option>
        			<option value="Publicacion">Publicacion</option>
    			</select>
    			<input type="submit" name="submit" value="Submit" />
   				</form>
        </div>
 
    </div>
		<div class="validator">
	</div>
</body>
</html>

Como ves, este primer formulario me da tres opciones para elegir: Nombre, Poblacion y Publicacion. El dato seleccionado, me lo manda a un segundo formulario (resul_form1.php):

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
<?php
include 'connection.php';
?>
<html>
 
<head>
  <title>Demo de menú desplegable</title>
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  <meta name="generator" content="Geany 1.23.1" />
</head>
 
<body>
 
<?php
echo $_POST['Formulario1'];
?>
	<pre>
    	<strong>DEBUG:</strong>
        <?php
		print_r($_POST);
		?>
    </pre>
 
  <div align="center">
    <h1>Demo de menú desplegable 2</h1>
 
    <p>Seleccione <?php echo $_POST['Formulario1']; ?></p>
    <p><?php echo $_POST['Formulario1']; ?>
 
	<form action="resul_form2.php" method="post">
      <select name="Formulario2" style="width:400;">
 
				 <?php
			$dato = $_POST['Formulario1'];
		    $query = 'SELECT COUNT(*), '.$dato.' FROM PuntosDeVenta GROUP BY '.$dato.'';
			$result = mysqli_query($link,$query) or die('Consulta fallida: ' . mysqli_error());
			while ($line = mysqli_fetch_array($result, MYSQLI_ASSOC))
			{
			echo "<option  value='".$line['ID']."'>".$line[$dato]."</option>";
   			 }
       			 ?>
      </select>
 
<input type="submit" name="submit" value="Enviar datos" /> // AQUI
 
</form>
 
   </p>
  </div>
</body>
 
</html>

En la parte superior tengo puesto código únicamente para visualizar el dato que me traigo con el "POST" del primer formulario, y veo que me trae bien el dato. El problema es lo que ya te he comentado: el dato que selecciono en este segundo cuestionario, no se llevarlo a un tercero (resul_form2.php). En principio debería de funcionar igual que el primero, es decir, a traves del POST. Pero no se porque, no me lleva nada. Se que no lleva nada, porque en el codigo del resul_form2.php tengo tambien un comprobador:

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
<?php
include 'connection.php';
?>
<html>
 
<head>
  <title>Demo de menú desplegable</title>
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  <meta name="generator" content="Geany 1.23.1" />
</head>
 
<body>
 
<?php
echo $_POST['Formulario2'];
?>
	<pre>
    	<strong>DEBUG:</strong>
        <?php
		print_r($_POST);
		?>
    </pre>
 
</body>
 
</html>

Soy un poco novato, y seguramente estoy haciendo algo mal.
En tu última respuesta me preguntas a ver si lo puedo enviar con el submit --> Si, la idea es que al pinchar en el boton, me mande los datos al siguiente formulario.
Y respecto a lo que me preguntas del $line[$dato] --> el $dato = $_POST['Formulario1']. Según el campo que haya elegido en el form1, me muestra una cosa u otra en la consulta sql.

Muchas gracias y un abrazo!!!
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
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema en formulario

Publicado por kip (877 intervenciones) el 14/06/2016 17:19:50
Entiendo, prueba de esta forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    $dato = $_POST['Formulario1'];
    $query = 'SELECT COUNT(*), '.$dato.' FROM PuntosDeVenta GROUP BY '.$dato.';';
    $result = mysqli_query($link,$query) or die('Consulta fallida: ' . mysqli_error());
    ?>
<form action="resul_form2.php" method="post">
    <select name="Formulario2" style="width:400;">
        <?php
        while ($line = mysqli_fetch_array($result, MYSQLI_ASSOC))
        {
            echo "<option value='".$line['ID']."'>".$line[$dato]."</option>";
        }
        ?>
        <option value="dato_prueba" >Dato prueba</option> //este es un dato de prueba para que lo envies y a ver si te muestra
    </select>
 
    <input type="submit" name="submit" value="Enviar datos" /> // AQUI
 
</form>

Verifica tambien que la consulta que haces a la base este correcta, lo digo para que los values de cada option tengan su informacion correspondiente, y al momento de hacer el submit lleve los datos que desees, podrias verificarlo cuando estes en el navegador corriendo el script resul_form1.php, si usas chrome podrias darle CTRL+SHIFT+i y verifica cada option que contenga un valor correspondiente a la consulta que hiciste.

Agregue un option para que pruebes seleccionandolo y enviandolo a ver si en resul_form2.php te muestra el valor del mismo, si lo hace es porque el problema esta en los valores de los option de la consulta.

Prueba de esa forma y nos cuentas.

Saludos
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

Problema en formulario

Publicado por ssainz (5 intervenciones) el 14/06/2016 18:02:58
Hola Kip,

Ya lo he visto!!!! Gracias al chrome he visto que los options los estaba creando mal.
Al meter 'ID' me estaba generando el campo vacio. Por eso no veía resultados en el siguiente formulario.
He modificado la linea
1
echo "<option value='".$line['ID']."'>".$line[$dato]."</option>";
por esta otra
1
echo "<option value='".$line[$dato]."'>".$line[$dato]."</option>";

Muchas gracias!!!! Ya me estaba volviendo loco!!!!
Gracias, gracias, gracias!!!!!!!!
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
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema en formulario

Publicado por kip (877 intervenciones) el 14/06/2016 18:12:21
Probaste lo de verificar los valores del formulario cuando corres el sript? No creo que sea lo que dices, me inclino mas porque los valores no se estan llenado con $datos['ID'], quizas por algo de la consulta, como dices el dato que selecciones no se almacene porque quizas no tiene ningun valor, prueba haciendo esto.

1
echo "<option value='".$line[$dato]."'>".$line['ID']."</option>";
Si no te muestra algo al desplegar las opciones es porque hay un problema con $line['ID'].

Veo que en la consulta haces un GROUP, es decir haces un conteo y agrupas los datos, quisiera que me muestres cuantos option te muestra una vez hecha aquella consulta, y que tambien te fijes en los valores.
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

Problema en formulario

Publicado por ssainz (5 intervenciones) el 14/06/2016 18:16:42
Hola Kip,

Te he contestado arriba. Me quedaba tiempo para modificar el mensaje, pero eres más rápido que las balas. jajaja

Gracias por tu ayuda!!!!!!!!!!!!!!!!!!!!!!
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
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema en formulario

Publicado por kip (877 intervenciones) el 14/06/2016 18:25:46
Me alegra que lo hayas resuelto, a base de errores se aprende y se adquiere la experiencia adecuada.

Si tienes algún otro problema, el foro esta para ayudarte!

Un saludo!
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