PHP - problemas con un select que depende de una consulta y otro select

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

problemas con un select que depende de una consulta y otro select

Publicado por eeveeolog (4 intervenciones) el 31/05/2019 12:21:36
Hola buenas tengo un pequeño problema con un codigo que estoy escribiendo. El caso es que estoy intentando hacer que un select me muestre los datos dependiendo de lo que marque en otro mediante mysql pero me pasa lo de la imagen.
e

cuando selecciono el nombre de la carpeta que se obtiene mediante una consulta mysql he intentado que usando post me haga una segunda consulta para mostrarme los archivos de su interior en otro select mediante una variable, el caso es que la variable no esta vacia por que tengo puesto que me muestre un mensaje si esta lo está y llevo haciendolo así para todo lo que he hecho y ha funcionado salvo ahora, dejo el codigo aqui a ver si me podeis decir en que me he equivocado.

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
if($var == "ar") {
 
  $sen = "select * from `carpeta` group by `nombre_carpeta` order by `nombre_carpeta` asc";
$query = mysqli_query($con, $sen);
 
 
 	echo "<html>
 	<table border=2>
	<tr>
	<form id='disco' name='arch' method='post' action='./borrar/bcarpeta.php'>
		<td> Nombre de la carpeta
		
 		      <select name='ubica' value='una' id='ubica' onChange='document.form.submit();'>";
 		while($arreglo = mysqli_fetch_array($query)) {
 	echo '<option value="'.$arreglo['nombre_carpeta'].'">';
 	echo $arreglo['nombre_carpeta'].'</option>';
 "</select>";
 	 };
 
 	  if (empty($_post['ubica'])) { echo "esta vacia";}
else { $ubica=$_post['ubica'];}
 
 	 $sente = "select * from `archivos` where carpeta='$ubica', order by `carpeta` asc";
$queryss = mysqli_query($con, $sente);
		 echo "</td><td> nombre del archivo
		 
		
		 <select name='arc' method='post' action='borrar.php' size='0'>";
		 	 ;
 		while($arreglos = mysqli_fetch_array($queryss)) {
 	echo '<option value="'.$arreglos['nombre_archivo'].'">';
 	echo $arreglos['nombre_archivo'].'</option>';
 "</select>";
 	 };
 
 
		echo "</td></tr>
		</table><input type='submit' name='btnAceptar' id='btnAceptar' value='Aceptar' />
	</form>
</html>";
  	};
  ?>

Muchas gracias de ante mano y un saludo llevaba bastante sin tocar esto y la verdad estoy oxidado. Siento si no me he expresado bien espero que se me haya entendido
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

problemas con un select que depende de una consulta y otro select

Publicado por Mauro (1037 intervenciones) el 31/05/2019 16:14:06
¿Por qué en la línea 3 usas group by?

No estoy seguro, pero me parece que $_POST deberías usarlo con mayúsculas (Al menos, siempre lo ví así...).

El SQL de la línea 23 parece tener un problema:

1
2
"select * from `archivos` where carpeta='$ubica', order by `carpeta` asc

Tiene una coma de más luego del carpeta='$ubica'

Debería ser:

1
2
"select * from `archivos` where carpeta='$ubica' order by `carpeta` asc
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

problemas con un select que depende de una consulta y otro select

Publicado por eeveeolog (4 intervenciones) el 31/05/2019 16:34:22
uso group by para evitar entradas duplicadas en el select, aunque creo que en esa es redundante, y por desgracia, tampoco funciona quitando la coma.

Lo que si he probado que me he olvidado decir es que si pongo en vez de una variable, el valor que seria el nombre de la carpeta como por ejemplo la carpeta 'una' que es la que aparece en la imagen funciona perfecto.

El problema es al tratar la variable, el $POST_ lo he provado tanto mayusculas y minusculas en diferentes partes del codigo y es indiferente, el problema parece estar en como se llena la variable por que todo lo demas funciona pero ya no se que puede ser, probare a cambiarlo a mayusculas todos por si acaso 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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

problemas con un select que depende de una consulta y otro select

Publicado por Mauro (1037 intervenciones) el 03/06/2019 18:10:03
Podría ser... para salir de dudas, muestra el SQL antes de ejecutarlo...

Agrega

1
echo $sente.'<br/>';

Entre las líneas 23 y 24
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

problemas con un select que depende de una consulta y otro select

Publicado por eeveeolog (4 intervenciones) el 04/06/2019 09:51:45
es eso que la variable se queda vacía por lo que parece, si le pongo el valor fijo funciona perfecta eso si

e2

1
$sente = "select * from `archivos` where carpeta='una' order by `carpeta` asc";

e3

asi que es eso la variable no se llena por algún motivo, y he cambiado los $_POST a mayúsculas y nada.

ah si hay que quitar la coma como decías 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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

problemas con un select que depende de una consulta y otro select

Publicado por Mauro (1037 intervenciones) el 04/06/2019 18:35:01
Perfecto, estás más cerca :)

Haz una prueba al comienzo del archivo:

1
print_r( $_POST);

Con eso verás qué recibe el script... puede que tengas un pequeño error de tipeo en el nombre del input del lado del 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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

problemas con un select que depende de una consulta y otro select

Publicado por eeveeolog (4 intervenciones) el 05/06/2019 09:58:36
vale he probado varias cosas,

lo pongo en diferentes resultados

al inicio en la linea 2 me muestra Array ( [elegir] => ar ) que es el valor que Muestra esta parte de la pagina.

Si lo sitúo a partir de la linea 19 directamente no me muestra nada si siquiera el array ( )

si cambio el metodo en vez de POST a GET y lo pongo al inicio, en la liena 2 muestra Array ( )

y si lo situo a partir de la liena 19 lo mismo, no muestra nada

el codigo completo en si es ese, aunque fallar solo falla la parte que puse puede que sea por culpa de algo que esta fuera del IF

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
122
123
124
125
126
127
128
<html>
<?php
$sU = "Buscar";
$sD = "Buscar";
$sG = "Buscar";
if (empty($_POST['elegir'])) { $var="hdd";}
else { $var=$_POST['elegir'];}
if($var == "hdd"){
    $sU = "selected";
}
if($var == "carpeta"){
    $sD = "selected";
}
if($var == "ar"){
    $sG = "selected";
};
echo "¿Que quieres borrar?";
?>
 
<form id="form" name="form" method="post" action="borrar.php">
<select name="elegir" value="hdd" id="elegir" onChange="document.form.submit();">
    <option value="hdd" <?php echo $sU;?>>Disco duro</option>
    <option value="carpeta" <?php echo $sD;?>>Carpeta</option>
    <option value="ar"<?php echo $sG;?>>Archivos</option>
</select>
 
 
</form>
<br>
<?php
include("principal.php");
$con = conectar();
 
 
  if($var == "hdd") {
   	$sen = "select * from `hdd` group by `nombre_disco` order by `nombre_disco` asc";
$query = mysqli_query($con, $sen);
 
  	echo "<html>
 	<table border=2>
	<tr>
	<form id='disco' name='disco' method='post' action='./borrar/bdisco.php'>
		<td> Nombre del disco 
		
 		<select name='dis' method='post' size='0'>";
 		while($arreglo = mysqli_fetch_array($query)) {
 	echo '<option value="'.$arreglo['nombre_disco'].'">';
 	echo $arreglo['nombre_disco'].'</option>';
 "</select>";
 	 };
		 echo "</tr>
		</table><input type='submit' name='btnAceptar' id='btnAceptar' value='Aceptar' />
	</form>
</html>";
  	}
  	  if($var == "carpeta") {
 
  	  	  	$sen = "select * from `carpeta` group by `nombre_carpeta` order by `nombre_carpeta` asc";
$query = mysqli_query($con, $sen);
 
  	echo "<html>
 	<table border=2>
	<tr>
	<form id='disco' name='carpeta' method='post' action='./borrar/bcarpeta.php'>
		<td> Nombre de la carpeta
		
 		<select name='carpeta' method='post' size='0'>";
 		while($arreglo = mysqli_fetch_array($query)) {
 	echo '<option value="'.$arreglo['nombre_carpeta'].'">';
 	echo $arreglo['nombre_carpeta'].'</option>';
 "</select>";
 	 };
		 echo "</tr>
		</table><input type='submit' name='btnAceptar' id='btnAceptar' value='Aceptar' />
	</form>
</html>";
 
}
  if($var == "ar") {
print_r( $_GET);
  $sen = "select * from `carpeta` group by `nombre_carpeta` order by `nombre_carpeta` asc";
$query = mysqli_query($con, $sen);
 
 
 	echo "<html>
 	<table border=2>
	<tr>
	<form id='disco' name='arch' method='GET' action='./borrar/bcarpeta.php'>
		<td> Nombre de la carpeta
		
 		      <select name='ubica' value='ubica' id='ubica' onChange='document.form.submit();' action='borrar.php'>";
 		while($arreglo = mysqli_fetch_array($query)) {
 	echo '<option value="'.$arreglo['nombre_carpeta'].'">';
 	echo $arreglo['nombre_carpeta'].'</option>';
 "</select>";
 
 	 };
 	  if (empty($_GET['ubica'])) { echo "esta vacia";}
else { $ubica=$_GET['ubica'];}
 
 	 $sente = "select * from `archivos` where carpeta='$ubica' order by `carpeta` asc";
 
$queryss = mysqli_query($con, $sente);
		 echo "</td><td> nombre del archivo
		 
		
		 <select name='arc' method='POST' action='borrar.php' size='0'>";
		 	 ;
 		while($arreglos = mysqli_fetch_array($queryss)) {
 	echo '<option value="'.$arreglos['nombre_archivo'].'">';
 	echo $arreglos['nombre_archivo'].'</option>';
 "</select>";
 	 };
 
 
		echo "</td></tr>
		</table><input type='submit' name='btnAceptar' id='btnAceptar' value='Aceptar' />
	</form>
</html>";
 echo $sente.'<br/>';
 
  	};
  ?>
  </form>
	<form action="index.html">
  <input type="submit" name="volver" id="volver" value="volver" />
  </form>
</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