PHP - No puedo tomar el Valor de un Combo para realizar una consulta

   
Vista:

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por Eric (77 intervenciones) el 03/05/2014 21:41:40

tengo un problema: Tengo dos combos que lleno sus valores con una tabla llamada secciones quiero realizar una consulta en el segundo combo con el valor que selecciono en el primer combo, lo quiero para mostrar los campos en un formulario para eliminarlos, y ademas tengo un boton buscar para que me realize una busqueda de los datos pero lo he tomado con $_POST y no me lo realiza me lo hace pero hasta despues que doy clic en el boton buscar:

por ejemplo si en el combo uno selecciono basica quiero que en el combo dos me lo llene solo con los datos que corresponde a basica
este es mi codigo:

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
<form name="fe" id="f1" action="" method="post">
<center>
<table width="514" border="2" bgcolor="#99CCFF">
<tr>
<td width="502"><div align="center"><strong>ELIMINAR SECCIONES ESCOLARES</strong></div></td>
</tr></table>
 
<table width="512" border="2">
  <tr>
    <td>Selecciones Nivel</td>
    <td width="108"><select name="txtbus" id="txtbus">
      <option value="">Seleccione</option>
      <? if(mysql_num_rows($rs)>0)
{
while($row = mysql_fetch_assoc($rs))
{
?>
      <option value="<?=$row["V_nivel_estudio"]?>"><?=$row["V_nivel_estudio"]?></option>
<?
}
}
?>
    </select></td>
    <td width="98">Selecciones ID</td>
    <td width="100"><select name="txtbus2" id="txtbus2">
      <option value="">Seleccione</option>
      <?
	  $bus3=$_POST["txtbus"];
	  $sql = "SELECT C_codi_seccion FROM tb_seccion_grado WHERE V_nivel_estudio = '$bus3' ";
	  $rs = mysql_query($sql, $cn);
	  if(mysql_num_rows($rs)>0)
{
while($row = mysql_fetch_assoc($rs))
{
?>
      <option value="<?=$row["C_codi_seccion"]?>"><?=$row["C_codi_seccion"]?></option>
 
<?
}
}
?>
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 xve

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por xve (5513 intervenciones) el 03/05/2014 22:01:09
Hola Eric, de la manera que tienes el código,por la parte que nos has mostrado, para que el segundo <select> se llene, tienes que refrescar la página... entiendo que quieres refrescar dicho <select> sin refrescar la página, no?

Coméntanos como quieres hacerlo, y intento ayudarte.
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

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por Eric (2 intervenciones) el 04/05/2014 00:45:33
Asi es quiero que el 2 select se me llene inmediatamente despues de seleccionar el primero, yo pensaba en eso de refrecar la pagina pero asi tendria que perder el valor del primer select seleccionado otra cosa q pensaba es hacerlo con Java Script pero ya probe muchas formas y no le doy al resultado, pero si quiero que al seleccionar basica o cualquiera del primero me muestre solos los codigos de basica en el segundo, agradesco tu aporte y los nuevos aportes que me puedas proporcionar
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

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por daniel (17 intervenciones) el 05/05/2014 05:33:52
Hola, por lo visto quieres hacer algo como esto:
http://www.canon.com.pa/main/consumibles
eso es con js usando json, podes revisar el script de esta pagina
http://www.canon.com.pa/main/modules/mod_seccatselect/js/artic.js

este es el json que se genera con el php
<script type="text/javascript">
var jsCat = [];
jsCat=[[0,"Seleccione Tipo de Producto","0"],[0,"Seleccione Tipo de Producto","59"],[0,"Seleccione Tipo de Producto","60"],[0,"Seleccione Tipo de Producto","61"],[0,"Seleccione Tipo de Producto","62"],[0,"Seleccione Tipo de Producto","63"],[64,"Tinta","60"],[65,"Entintadores","59"],[66,"Láser","61"],[67,"Tinta","61"],[68,"Láser","62"],[69,"Tinta","62"],[70,"Bond","63"],[71,"Fotográfico","63"]];

var jsArt = [];

jsArt=[[0,"Seleccione Modelo","0"],[0,"Seleccione Modelo","64"],[0,"Seleccione Modelo","65"],[0,"Seleccione Modelo","66"],[0,"Seleccione Modelo","67"],[0,"Seleccione Modelo","68"],[0,"Seleccione Modelo","69"],[0,"Seleccione Modelo","70"],[0,"Seleccione Modelo","71"],[484," imageCLASS4000","68"],[375,"4350D","68"],[374,"4370DN","68"],[477,"B550","64"],[478,"B640","64"],[476,"B95","64"],[162,"BJC-2000","67"],[163,"BJC-2100","67"],[172,"BJC-3000 ","67"],[164,"BJC-4000","67"],[165,"BJC-4100","67"],[166,"BJC-4200","67"],[167,"BJC-4300","67"],[168,"BJC-4400","67"],[171,"BJC-4550","67"],[169,"BJC-5000 ","67"],[170,"BJC-5100","67"],[173,"BJC-6000","67"],[182,"BJC-8200","67"],[499,"BP-1010","65"],[496,"BP-1210","65"],[502,"BP-25","65"],[503,"BP-26","65"],[501,"BP-35","65"],[494,"BP36-D","65"],[493,"BP5420","65"],[373,"D1120","68"],[361,"D1150","68"],[161,"DS700","67"],[479,"Faxphone B740","64"],[192,"i250","67"],[193,"i320 ","67"],[194,"i350","67"],[195,"i450","67"],[196,"i470D","67"],[197,"i475D","67"],[174,"i550","67"],[160,"i80","67"],[175,"i850","67"],[183,"i860","67"],[184,"i900D","67"],[191,"i950","67"],[190,"i9950","67"],[204,"iP100","67"],[233,"iP1000","67"],[212,"iP1200","67"],[213,"iP1300","67"],[380,"iP1500","67"],[214,"iP1600","67"],[215,"iP1700","67"],[209,"iP1800","67"],[210,"iP1900","67"],[379,"iP2000","67"],[217,"iP2200","67"],[211,"iP2500","67"],[208,"iP2700","67"],[231,"iP3000","67"],[224,"iP3300","67"],[225,"iP3500","67"],[205,"iP3600","67"],[226,"iP4200","67"],[227,"iP4300","67"],[228,"iP4500","67"],[206,"iP4600","67"],[207,"iP4700","67"],[378,"iP6000D","67"],[222,"iP6220D","67"],[154,"iP6220D","69"],[229,"iP6600D","67"],[230,"iP6700D","67"],[376,"iP90","67"],[377,"iP90V","67"],[474,"JX300","64"],[352,"JX510","69"],[475,"JX510P","64"],[454,"LBP- 1760","66"],[458,"LBP-1120","66"],[488,"LBP-1210","66"],[489,"LBP-2000","66"],[460,"LBP-2460","66"],[482,"LBP-3000","66"],[12,"LBP-3100","66"],[487,"LBP-3200","66"],[470,"LBP-3300","66"],[385,"LBP-3460","66"],[456,"LBP-460","66"],[369,"LBP-5050N","66"],[363,"LBP-5460","66"],[364,"LBP-5960","66"],[365,"LBP-5970","66"],[366,"LBP-5975","66"],[457,"LBP-800","66"],[455,"LBP-8III","66"],[461,"LBP-8IV","66"],[467,"LBP3250","66"],[368,"LBP7200CD","66"],[485,"MF3110","68"],[382,"MF4690","68"],[318,"MF8050CN","68"],[370,"MF8350CND","68"],[155,"MF8450C","68"],[447,"MP-120DH","65"],[434,"MP-12D","65"],[490,"MP11DX","65"],[505,"MP12-DH","65"],[473,"MP140","69"],[462,"MP150","69"],[453,"MP160","69"],[452,"MP170","69"],[450,"MP180","69"],[472,"MP190","69"],[471,"MP210","69"],[449,"MP220","69"],[468,"MP240","69"],[463,"MP250","69"],[438,"MP260","69"],[372,"MP270","69"],[237,"MP280","69"],[492,"MP41DH","65"],[238,"MP450","69"],[353,"MP460","69"],[242,"MP495","69"],[245,"MP510","69"],[246,"MP520","69"],[347,"MP530","69"],[346,"MP560","69"],[345,"MP780","69"],[351,"MultiPASS C755","69"],[350,"MultiPASS F20","69"],[247,"MultiPASS F30","69"],[248,"MultiPASS F50","69"],[250,"MultiPASS F80","69"],[294,"MultiPASS MP360","69"],[292,"MultiPASS MP370","69"],[303,"MultiPASS MP390","69"],[305,"MultiPASS MP700","69"],[313,"MultiPASS MP730","69"],[344,"MX300","69"],[338,"MX310","69"],[371,"MX320","69"],[362,"MX330","69"],[239,"MX340","69"],[241,"MX350","69"],[243,"MX720","69"],[495,"P1-DH III","65"],[497,"P1-DH V","65"],[504,"P100-DH II","65"],[393,"P1017D","65"],[394,"P1018D","65"],[511,"P10DH","65"],[486,"P120-DH","65"],[395,"P1252-D","65"],[426,"P1253-D","65"],[427,"P15-D","65"],[469,"P170","65"],[448,"P200-DH II","65"],[428,"P22-D II","65"],[508,"P22-DH","65"],[483,"P220-DH","65"],[451,"P23-DH II","65"],[465,"P23-DH V ","65"],[466,"P23DH","65"],[381,"P27 ","65"],[383,"P29-D","65"],[384,"P30-D","65"],[386,"P31-D","65"],[431,"P32-D II","65"],[509,"P32-DH","65"],[387,"P37-D","65"],[388,"P39-D","65"],[512,"P42-DR","65"],[510,"P52-DR","65"],[498,"P8DH","65"],[358,"Papel Alta Resolución ","71"],[234,"Papel Bond","70"],[356,"Papel Photo ","71"],[357,"Papel Photo Matte ","71"],[355,"Papel Photo Paper Pro II ","71"],[360,"Papel Satinado ","71"],[359,"Papel Transfer para T-Shirts","71"],[202,"Pro9000","67"],[203,"Pro9000 Mark II","67"],[198,"S200","67"],[199,"S300","67"],[200,"S330","67"],[176,"S400","67"],[177,"S450","67"],[178,"S500","67"],[179,"S530D","67"],[180,"S600","67"],[181,"S750","67"],[185,"S800","67"],[187,"S820","67"],[188,"S820D","67"],[189,"S830D","67"],[186,"S900","67"]];

var iItemID=108;
var jsLiveSite='http://www.canon.com.pa/main/';
</script>
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 Vainas

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por Vainas (254 intervenciones) el 05/05/2014 10:37:00
Esto se puede hacer de varias formas:

1. Refrescando la pagina: Al llamar al form la primera vez puedes guardar su valor. Se trata de que la primera vez que el usuario le de a buscar o con el evento onchange de la etiqueta select se llame a la pagina y se guarde ese valor como un input de tipo hidden o dejándolo seleccionado en el select. La pagina tiene que ser capaz de recoger ese valor y dejarlo como seleccionado en la segunda vez que se pasa: para llamar con javascript de nuevo a la pagina puedes usar algo así:

1
2
3
4
5
6
7
8
<form>
<select name='myfield' onchange='this.form.submit()'>
  <option selected>Milk</option>
  <option>Coffee</option>
  <option>Tea</option>
</select>
<noscript><input type="submit" value="Submit"></noscript>
</form>

2. Usando javascript: Usando el evento onchange cargaras unos valores u otros en el segundo select. Podrias tener los valores del segundo select como arrays en javascript. algo asi:

1
2
3
4
var segundoSelectObj = new Array();
segundoSelectObj['basica'] = "valor1";
segundoSelectObj['Parvularia'] = "valor2";
...


Luego tendrás que saber por javascript como introducir esos valores en la etiqueta. La diferencia a la primera opción es que no se recarga la pagina y cargaras todos los valores que puede contener el segundo select en el lado del cliente (si no son muchos puede ser una opción viable).

3. Usando ajax: Esto es la recarga de partes de la web sin tener que refrescarla entera. se basa en que haces una llamada a una URL y esta te devuelve los datos que necesitas en XML, JSON, HTML....entre los que mas se suelen usar.

El principio es el mismo que el de arriba: creas un select que tiene un evento onchange que llamara a una función que se encarga de llamar a esa URL traer los datos y rellenar el nuevo select.

Te doy un sitio que me ha devuelto google buscando: "dos select ajax" http://www.formatoweb.com.ar/ajax/select_dependientes.php

Toma en cuenta que posiblemente tienes que crear un php aparte que sera el que recibiendo un valor (GET o POST) del primer nivel devuelva lo que se va a colocar con javascript en el segundo nivel.

Espero haberte ayudado y no haberte liado mas :).

Saludos.
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 xve

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por xve (5513 intervenciones) el 05/05/2014 11:13:47
Hola Eric, aqui tienes un ejemplo bien comentado:
http://www.lawebdelprogramador.com/codigo/JQuery/2663-Selects_dinamicos_con_PHP_y_Jquery.html

Espero que te sirva.
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

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por Eric (2 intervenciones) el 05/05/2014 19:42:38
Exactamente eso es lo que quiero XVE el unico detalle es que tengo que acomodarlo a mi tabla pues el ejemplo q tu me has dado es con Array y en mi caso los valores los tomo de una table, y el valor de los dos combos dependen de la misma tabla:

NEVEL CODIGO
Basica BS1
Bachiller BC1
Otro OT1
Basica BS2
Bachiller BC2
Otro OT2

Y lo que quiero es que cuando selecciones basica en el primer combo me mueste solo los codigos de basica en el segundo osea BS1 y BS2 y asi de acuerdo lo que selecciones pero probare el ejemplo y luego comento otra vez Y ADEMAS GRACIAS A TODOS LOS DEMAS APORTES MUY BUENOS
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

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por Eric (77 intervenciones) el 05/05/2014 22:11:17

XVE, disculpa por tanta molestia, he modificado el archivo donde manejan las opciones del segundo combo del ejemplo que me mandastes y me muestra lo de la imagen. osea me muestra null los valores, pero si me muestra la cantidad correcta de valores pero como Null, ahora mi objetivo es poner los valores de la consulta en un Array para poder desplegarlos pero he echo un par de cosas y no le doy a la solucion, pero si logro poner los valores en el Array creo que estara resuelta la situacion. Las modificaciones q he echo son las siguiente:
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
<?php
include("conexion.php");
$valoresSegundoSelect=array(
    "0"=>"Selecciona una opción"
);
$correcto=1;
 
if($_POST["id"]==1)
{
    // coche
    //array_push($valoresSegundoSelect,"Ford", "Toyota", "Ferrari");
	$sql = "SELECT C_codi_seccion FROM tb_seccion_grado WHERE V_nivel_estudio = 'Basica' ";
	$rs = mysql_query($sql, $cn);
	while($row=mysql_fetch_array($rs))
	{
	$MiArray[ $row["C_codi_seccion"] ] = $row["value"];
	}
    $valoresSegundoSelect=$MiArray;
}elseif($_POST["id"]==2){
    // moto
    array_push($valoresSegundoSelect,"Yamaha", "Honda", "BMW");
}elseif($_POST["id"]==3){
    // avion
    array_push($valoresSegundoSelect,"Iberia", "Lufthansa", "Air France");
}else{
    $correcto=0;
}
 
# devolvemos el resultado en json
echo json_encode(array("correcto"=>$correcto, "contenido"=>$valoresSegundoSelect));
?>
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 xve

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por xve (5513 intervenciones) el 05/05/2014 22:35:48
Hola Eric, revisa la consulta SQL...
1
SELECT C_codi_seccion FROM tb_seccion_grado WHERE V_nivel_estudio = 'Basica' "
Fíjate, que únicamente seleccionas el C_codi_seccion, en ningún momento seleccionas el value

Prueba así (suponiendo que el campo se llama value):
1
SELECT C_codi_seccion, value FROM tb_seccion_grado WHERE V_nivel_estudio = 'Basica' "

Coméntanos, ok?
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

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por Eric (77 intervenciones) el 05/05/2014 23:18:56
!!Solucionado!! GRACIAS POR TUS GRANDISIMOS APORTES "XVE", Fueron muy importantes para la solucion, por si le sirve a alguien lo dejare aqui junto a mis agradecimientos.

1
2
3
4
5
6
7
8
    //array_push($valoresSegundoSelect,"Ford", "Toyota", "Ferrari");
	$sql = "SELECT C_codi_seccion FROM tb_seccion_grado WHERE V_nivel_estudio = 'Basica' ";
	$rs = mysql_query($sql, $cn);
	while($row=mysql_fetch_array($rs))
	{
	$MiArray[ $row["C_codi_seccion"] ] = $row["C_codi_seccion"];
	}
    $valoresSegundoSelect=$MiArray;

Este segmento de codigo serviria para poner la columna seleccionada de una tabla por medio de una consulta, en un Array
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 xve

No puedo tomar el Valor de un Combo para realizar una consulta

Publicado por xve (5513 intervenciones) el 06/05/2014 08:52:40
Gracias por compartirlo Eric!!
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