hola mortiprogramador
respecto a lo que me dices del codigo de la oficina, no puedo tomarlo porque los combos los utilizo para hacer unos filtros sobre solicitudes, las cuales quieren que sean filtradas por ciudades y por oficinas.
pero gracias por su ayuda, ya pude solucionarlo, tuve que crear una funcion en otro archivo cargando los select y le pasaba los valores dentro de los parametros. algo así:
Código PHP:
Ver originalfunction ciudades($val_ciu, $val_ofi) {
include("conectar.php");
$modificar = array( '__'=>' - ', '_'=>' ');
if($val_ciu!=""){ ?>
<td style='background :#cccccc;'><b><label for="ciudad">CIUDAD</label></b></td>
<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"); if(substr($fila2['ciudad'],-1,1)=="_"){ //valida si el ultimo caracter de ciudad es _ para hacer la conversion de espacios. $val_ciudad = strtr(substr($fila2['ciudad'],0,-1), $modificar); }else{
$val_ciudad = strtr($fila2['ciudad'], $modificar); }
?><option
<?php if(isset($_POST['ciudad'])) { if($val_ciudad==$val_ciu ) { ?>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='$val_ciu' and estado='A' AND entidad='14' order by nombre"); if(substr($fila['nombre'],-1,1)=="_"){ $var_oficina = strtr(substr($fila['nombre'],0,-1), $modificar); }else{
$var_oficina = strtr($fila['nombre'], $modificar); } ?>
<option
<?php if(isset($_POST['oficina'])) { if($var_oficina==$val_ofi){?>selected
<?php } } ?>>
<?php echo $var_oficina;?></option>
<?php } ?>
</select></td>
<?php
}else{
?><td style='background :#cccccc;'><b><label for="ciudad">CIUDAD</label></b></td>
<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"); if(substr($fila2['ciudad'],-1,1)=="_"){ //valida si el ultimo caracter de ciudad es _ para hacer la conversion de espacios. $val_ciudad = strtr(substr($fila2['ciudad'],0,-1), $modificar); }else{
$val_ciudad = strtr($fila2['ciudad'], $modificar); }
?><option
<?php if(isset($_POST['ciudad'])) { if($val_ciudad==$_POST['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
if(isset($_POST['ciudad'])){ $consulta=mysqli_query($link,"SELECT nombre FROM `oficina` WHERE ciudad='$ciudad1' and estado='A' AND entidad='14' order by nombre"); if(substr($fila['nombre'],-1,1)=="_"){ $var_oficina = strtr(substr($fila['nombre'],0,-1), $modificar); }else{
$var_oficina = strtr($fila['nombre'], $modificar); } ?>
<option
<?php if(isset($_POST['oficina'])) { if($var_oficina==$_POST['oficina']){?>selected
<?php } } ?>>
<?php echo $var_oficina;?></option>
<?php } } ?>
</select></td>
<?php
}
}
y aqui dentro de la ejecucion del boton realizo el llamado y me funciona perfecto, se cargan los valores dependiendo del codigo que digite y el post toma los valores correctos.
Código PHP:
Ver original$val_ciu = "";
$val_ofi = "";
$modificar = array( '__'=>' - ', '_'=>' '); $modificar1 = array( ' - '=>'%%', ' '=>'%'); if(isset($_POST['cod'])){ if ($_POST['cod'] == "BUSCAR") {
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){
if(substr($row['ciudad'],-1,1)=="_"){ $val_ciu = strtr(substr($row['ciudad'],0,-1), $modificar); }else{
$val_ciu = strtr($row['ciudad'], $modificar); }
if(substr($row['nombre'],-1,1)=="_"){ $val_ofi = strtr(substr($row['nombre'],0,-1), $modificar); }else{
$val_ofi = strtr($row['nombre'], $modificar); }
ciudades($val_ciu, $val_ofi);
}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;
}
ciudades($val_ciu, $val_ofi);
echo "<script> window.alert(' NO SE ENCONTRÓ $seleccion CON EL CODIGO $codigo. POR FAVOR, INTENTELO NUEVAMENTE. '); </script>";
}
}else{
ciudades($val_ciu, $val_ofi);
echo "<script> window.alert('NO SE HA INGRESADO UN CODIGO AUN.'); </script>";
}
}else{
ciudades($val_ciu, $val_ofi);
$val_ciu = "";
$val_ofi = "";
}
}else{
ciudades($val_ciu, $val_ofi);
} ?>
muchas gracias por la ayuda, me sirvió bastante también. saludos.