tengo dos combos dependientes coenctados a mysql, los cuales cargan datos de ciudad y oficinas respectivamente, estos funcionan bien. ahora lo que quiero hacer es que dentro de una caja se ingrese un codigo, el cual sería el correspondiente al codigo de una oficina y que al pulsar un boton, si se encuentra el dato, me ubique el dato de ciudad y oficina correspondiente sobre los combos.
el codigo que tengo es algo extenso:
Código PHP:
Ver original
<tr> <td style="background :#cccccc;" > <b>TIPO UBICACIÓN </b> </td> <td> <select name="tipo" > <option disabled>Seleccione</option> <option value="O" <?php if(isset($_POST['tipo'])) { if($_POST['tipo']== "O"){?>selected<?php } } ?> >OFICINA</option> <option value="C" <?php if(isset($_POST['tipo'])) { if($_POST['tipo']== "C"){?>selected<?php } } ?> >CAJERO</option> <option value="E" <?php if(isset($_POST['tipo'])) { if($_POST['tipo']== "E"){?>selected<?php } } ?> >EDIFICIO</option> </select> <b>CÓDIGO: </b><input name=codigo placeholder="ejm : 248510" type="text" onblur="submit();" style="width:25%" > </td> </tr> <tr> <?php $val_ciu = ""; $val_ofi = ""; { if ($_POST['codigo'] != "") { $codigo = $_POST['codigo']; $tipo = $_POST['tipo']; $query = mysqli_query($link,"SELECT ciudad, nombre FROM `oficina` WHERE entidad=14 AND codigo='$codigo' AND tipo='$tipo'"); if($contar > 0){ }else{ } }else{ } }else{ $val_ciu = ""; $val_ofi = ""; switch ($tipo){ case "C": $seleccion = "EL CAJERO"; break; case "O": $seleccion = "LA OFICINA"; break; case "E": $seleccion = "EL EDIFICIO"; break; } echo "<script> window.alert(' NO SE ENCONTRÓ $seleccion. POR FAVOR, INTENTELO NUEVAMENTE. '); </script>"; } }else{ $val_ciu = ""; $val_ofi = ""; } } ?> <td style='background :#cccccc;'><b><label for="ciudad">CIUDAD</label></b></td> <?php }else{ } echo $valor,'<br>',$valor2; ?> <td> <select name=ciudad onchange=submit(); style='width:50%'> <option value='s' disabled>Seleccione</option> <option></option><?php $consulta2=mysqli_query($link,"SELECT ciudad FROM `oficina` WHERE estado='A' AND entidad=14 GROUP BY ciudad ORDER BY ciudad"); while ($fila2=mysqli_fetch_array($consulta2)) // se reemplazan _ por espacios para que no se visualicen en el select. { if(substr($fila2['ciudad'],-1,1)=="_"){ //valida si el ultimo caracter de ciudad es _ para hacer la conversion de espacios. }else{ } ?> elseif($_POST['ciudad']==$val_ciudad) { ?>selected<?php } } ?>> <?php echo $val_ciudad;?></option><?php } ?> </select> </td> </tr> <tr> <td style="background :#cccccc;"><b><label for="oficina" >OFICINA</label></b></td> <td> <select name=oficina id="id1" onchange=submit(); style="width:50%"> <option value="s" disabled>Seleccione</option> <option></option><?php $consulta=mysqli_query($link,"SELECT nombre FROM `oficina` WHERE ciudad='$ciudad1' and estado='A' AND entidad='14' order by nombre"); }else{ } ?> elseif($val_ofi==$var_oficina){?>selected<?php } } ?>> <?php echo $var_oficina;?></option> <?php } } ?> </select> </td> </tr> </table> </form> </body> </html> <?php $conc = mysqli_query($link,"SELECT ciudad FROM `oficina` WHERE CIUDAD like '%$var_ciudad%' AND entidad =14 group by ciudad"); $ciudad = $resc['ciudad']; $consul = mysqli_query($link,"SELECT nombre FROM `oficina` WHERE entidad =14 and nombre like '%$var_oficina%' group by nombre"); $oficina = $respu['nombre'];
hago algunas conversiones en cadenas de texto, puesto que los datos en base de datos tienen algunos guiones (_) que el usuario solicitó no se mostraran. pero se que este no es el error, porque al hacer pruebas, por ejemplo si hago una consulta de una oficina de bogota, se me carga sobre el combo de ciudad, mas no en el de oficina, poseriormente con otro dato y no funciona, luego pruebo de nuevo con la of de bogota y ya no funciona.
por favor ayudenme, ya he probado de muchas formas.