Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/09/2015, 07:25
jmg1189
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 8 años, 7 meses
Puntos: 2
Respuesta: Asignar valor a select dependiendo de una variable

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 original
  1. function ciudades($val_ciu, $val_ofi) {
  2.     include("conectar.php");
  3.     $modificar = array( '__'=>' - ', '_'=>' ');
  4.     if($val_ciu!=""){ ?>
  5.         <td style='background :#cccccc;'><b><label for="ciudad">CIUDAD</label></b></td>
  6.         <td><select name=ciudad onchange=submit(); style='width:50%'>
  7.             <option value='s' disabled>Seleccione</option>
  8.             <option></option><?php
  9.             $consulta2=mysqli_query($link,"SELECT ciudad FROM `oficina` WHERE estado='A' AND entidad=14 GROUP BY ciudad ORDER BY ciudad");
  10.             while ($fila2=mysqli_fetch_array($consulta2)) {
  11.                 if(substr($fila2['ciudad'],-1,1)=="_"){ //valida si el ultimo caracter de ciudad es _ para hacer la conversion de espacios.
  12.                     $val_ciudad = strtr(substr($fila2['ciudad'],0,-1), $modificar);
  13.                 }else{
  14.                     $val_ciudad = strtr($fila2['ciudad'], $modificar);
  15.                 }
  16.                 ?><option  <?php if(isset($_POST['ciudad'])) {  if($val_ciudad==$val_ciu ) { ?>selected<?php }  } ?>><?php  echo $val_ciudad;?></option><?php      
  17.             } ?>
  18.             </select></td>
  19.     </tr>
  20.     <tr><td style="background :#cccccc;"><b><label for="oficina" >OFICINA</label></b></td>
  21.         <td><select name=oficina id="id1" onchange=submit();  style="width:50%">
  22.             <option value="s" disabled>Seleccione</option>
  23.             <option></option><?php
  24.                 $consulta=mysqli_query($link,"SELECT nombre FROM `oficina` WHERE ciudad='$val_ciu' and estado='A' AND entidad='14' order by nombre");
  25.                 while ($fila=mysqli_fetch_array($consulta)){
  26.                     if(substr($fila['nombre'],-1,1)=="_"){
  27.                         $var_oficina = strtr(substr($fila['nombre'],0,-1), $modificar);
  28.                     }else{
  29.                         $var_oficina = strtr($fila['nombre'], $modificar);
  30.                     } ?>
  31.             <option <?php if(isset($_POST['oficina'])) {  if($var_oficina==$val_ofi){?>selected<?php }  } ?>><?php echo $var_oficina;?></option>
  32.          <?php } ?>
  33.         </select></td>
  34.     <?php
  35.     }else{
  36.             ?><td style='background :#cccccc;'><b><label for="ciudad">CIUDAD</label></b></td>
  37.             <td><select name=ciudad onchange=submit(); style='width:50%'>
  38.                 <option value='s' disabled>Seleccione</option>
  39.                 <option></option><?php
  40.                 $consulta2=mysqli_query($link,"SELECT ciudad FROM `oficina` WHERE estado='A' AND entidad=14 GROUP BY ciudad ORDER BY ciudad");
  41.                 while ($fila2=mysqli_fetch_array($consulta2)) {
  42.                 if(substr($fila2['ciudad'],-1,1)=="_"){ //valida si el ultimo caracter de ciudad es _ para hacer la conversion de espacios.
  43.                     $val_ciudad = strtr(substr($fila2['ciudad'],0,-1), $modificar);
  44.                 }else{
  45.                     $val_ciudad = strtr($fila2['ciudad'], $modificar);
  46.                 }
  47.                 ?><option  <?php if(isset($_POST['ciudad'])) {  if($val_ciudad==$_POST['ciudad']) { ?>selected<?php }  } ?>><?php  echo $val_ciudad;?></option><?php       
  48.                 } ?>
  49.                 </select></td>
  50.         </tr>
  51.         <tr>
  52.             <td style="background :#cccccc;"><b><label for="oficina" >OFICINA</label></b></td>
  53.             <td><select name=oficina id="id1" onchange=submit();  style="width:50%">
  54.                 <option value="s" disabled>Seleccione</option>
  55.                 <option></option><?php
  56.                 if(isset($_POST['ciudad'])){   
  57.                 $ciudad1=str_replace(" ","_",$_POST['ciudad']);
  58.                 $consulta=mysqli_query($link,"SELECT nombre FROM `oficina` WHERE ciudad='$ciudad1' and estado='A' AND entidad='14' order by nombre");
  59.                 while ($fila=mysqli_fetch_array($consulta)){
  60.                     if(substr($fila['nombre'],-1,1)=="_"){
  61.                     $var_oficina = strtr(substr($fila['nombre'],0,-1), $modificar);
  62.                     }else{
  63.                     $var_oficina = strtr($fila['nombre'], $modificar);
  64.                     } ?>
  65.                 <option <?php if(isset($_POST['oficina'])) {  if($var_oficina==$_POST['oficina']){?>selected<?php }  } ?>><?php echo $var_oficina;?></option>
  66.             <?php } } ?>
  67.             </select></td>
  68.         <?php
  69.     }
  70. }

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
  1. $val_ciu = "";
  2.                 $val_ofi = "";
  3.                 $modificar = array( '__'=>' - ', '_'=>' ');
  4.                 $modificar1 = array( ' - '=>'%%', ' '=>'%');
  5.                 if(isset($_POST['cod'])){
  6.                     if ($_POST['cod'] == "BUSCAR") {
  7.                         if ($_POST['codigo'] != "") {
  8.                             $codigo = $_POST['codigo'];
  9.                             $tipo = $_POST['tipo'];
  10.                             $query = mysqli_query($link,"SELECT ciudad, nombre FROM `oficina` WHERE entidad=14 AND codigo='$codigo' AND tipo='$tipo'");  
  11.                             $contar = mysqli_num_rows($query);
  12.                             $row = mysqli_fetch_array($query);
  13.                             if($contar > 0){
  14.                                 if(substr($row['ciudad'],-1,1)=="_"){
  15.                                     $val_ciu = strtr(substr($row['ciudad'],0,-1), $modificar);
  16.                                 }else{
  17.                                     $val_ciu = strtr($row['ciudad'], $modificar);
  18.                                 }
  19.                                 if(substr($row['nombre'],-1,1)=="_"){
  20.                                     $val_ofi = strtr(substr($row['nombre'],0,-1), $modificar);
  21.                                 }else{
  22.                                     $val_ofi = strtr($row['nombre'], $modificar);
  23.                                 }
  24.                                 ciudades($val_ciu, $val_ofi);
  25.                             }else{  
  26.                                 $val_ciu = "";
  27.                                 $val_ofi = "";
  28.                                 switch ($tipo){
  29.                                     case "C": $seleccion = "EL CAJERO";
  30.                                         break;
  31.                                     case "O": $seleccion = "LA OFICINA";
  32.                                         break;
  33.                                     case "E": $seleccion = "EL EDIFICIO";
  34.                                         break;
  35.                                 }
  36.                                 ciudades($val_ciu, $val_ofi);
  37.                                 echo "<script> window.alert(' NO SE ENCONTRÓ $seleccion CON EL CODIGO $codigo. POR FAVOR, INTENTELO NUEVAMENTE. '); </script>";
  38.                             }
  39.                         }else{
  40.                             ciudades($val_ciu, $val_ofi);
  41.                             echo "<script> window.alert('NO SE HA INGRESADO UN CODIGO AUN.'); </script>";
  42.                         }
  43.                     }else{
  44.                         ciudades($val_ciu, $val_ofi);
  45.                         $val_ciu = "";
  46.                         $val_ofi = "";
  47.                     }
  48.                 }else{
  49.                     ciudades($val_ciu, $val_ofi);  
  50.                 } ?>



muchas gracias por la ayuda, me sirvió bastante también. saludos.