Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/09/2015, 15:17
jmg1189
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 8 años, 7 meses
Puntos: 2
Pregunta problema al cargar datos de una consulta sobre un select

hola a todos

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
  1. <tr>
  2.                 <td style="background :#cccccc;" > <b>TIPO UBICACI&Oacute;N </b> </td>
  3.                 <td>
  4.                     <select name="tipo" >
  5.                         <option disabled>Seleccione</option>
  6.                         <option value="O" <?php if(isset($_POST['tipo'])) { if($_POST['tipo']== "O"){?>selected<?php } } ?> >OFICINA</option>
  7.                         <option value="C" <?php if(isset($_POST['tipo'])) { if($_POST['tipo']== "C"){?>selected<?php } } ?> >CAJERO</option>
  8.                         <option value="E" <?php if(isset($_POST['tipo'])) { if($_POST['tipo']== "E"){?>selected<?php } } ?> >EDIFICIO</option>
  9.                     </select>
  10.                      <b>C&Oacute;DIGO: </b><input name=codigo placeholder="ejm : 248510" type="text" onblur="submit();" style="width:25%" >
  11.                 </td>
  12.             </tr>
  13.             <tr>
  14.              <?php
  15.                 $val_ciu = "";
  16.                 $val_ofi = "";
  17.                 $modificar = array( '__'=>' - ', '_'=>' ');
  18.                 $modificar1 = array( ' - '=>'%%', ' '=>'%');
  19.                 if(isset($_POST['codigo']))
  20.                 {  
  21.                     if ($_POST['codigo'] != "")
  22.                     {   $codigo = $_POST['codigo'];
  23.                         $tipo = $_POST['tipo'];
  24.                         $query = mysqli_query($link,"SELECT ciudad, nombre FROM `oficina` WHERE entidad=14 AND codigo='$codigo' AND tipo='$tipo'");  
  25.                         $contar = mysqli_num_rows($query);
  26.                         $row = mysqli_fetch_array($query);
  27.                         if($contar > 0){
  28.                             if(substr($row['ciudad'],-1,1)=="_"){
  29.                                 $val_ciu = strtr(substr($row['ciudad'],0,-1), $modificar);
  30.                             }else{
  31.                                 $val_ciu = strtr($row['ciudad'], $modificar);
  32.                             }
  33.                             if(substr($row['nombre'],-1,1)=="_"){
  34.                                 $val_ofi = strtr(substr($row['nombre'],0,-1), $modificar);
  35.                             }else{
  36.                                 $val_ofi = strtr($row['nombre'], $modificar);
  37.                             }
  38.                         }else{  
  39.                             $val_ciu = "";
  40.                             $val_ofi = "";
  41.                             switch ($tipo){
  42.                                 case "C": $seleccion = "EL CAJERO";
  43.                                     break;
  44.                                 case "O": $seleccion = "LA OFICINA";
  45.                                     break;
  46.                                 case "E": $seleccion = "EL EDIFICIO";
  47.                                     break;
  48.                             }
  49.                             echo "<script> window.alert(' NO SE ENCONTRÓ $seleccion. POR FAVOR, INTENTELO NUEVAMENTE. '); </script>";
  50.                         }
  51.                     }else{
  52.                         $val_ciu = "";
  53.                         $val_ofi = "";
  54.                     }
  55.                 }
  56.                 ?>
  57.                 <td style='background :#cccccc;'><b><label for="ciudad">CIUDAD</label></b></td>
  58.                  <?php     
  59.                    
  60.                    
  61.                     if(substr($cadena,-1,1)=="_"){
  62.                         $valor = strtr(substr($cadena,0,-1), $modificar);
  63.                         $valor2 = strtr(substr($cadena,0,-1), $modificar1);
  64.                    
  65.                     }else{
  66.                         $valor = strtr($cadena, $modificar);
  67.                         $valor2 = strtr($cadena, $modificar1);
  68.                     }
  69.                    
  70.                     echo $valor,'<br>',$valor2;
  71.         ?>
  72.                 <td>
  73.                     <select name=ciudad onchange=submit(); style='width:50%'>
  74.                         <option value='s' disabled>Seleccione</option>
  75.                         <option></option><?php
  76.                         $consulta2=mysqli_query($link,"SELECT ciudad FROM `oficina` WHERE estado='A' AND entidad=14 GROUP BY ciudad ORDER BY ciudad");
  77.                             while ($fila2=mysqli_fetch_array($consulta2)) // se reemplazan _ por espacios para que no se visualicen en el select.
  78.                             {
  79.                                 if(substr($fila2['ciudad'],-1,1)=="_"){ //valida si el ultimo caracter de ciudad es _ para hacer la conversion de espacios.
  80.                                     $val_ciudad = strtr(substr($fila2['ciudad'],0,-1), $modificar);
  81.                                 }else{
  82.                                     $val_ciudad = strtr($fila2['ciudad'], $modificar);
  83.                                 }
  84.                                 ?>
  85.                             <option  <?php if(isset($_POST['ciudad'])) {  if($val_ciu==$val_ciudad){ ?>selected<?php }
  86.                             elseif($_POST['ciudad']==$val_ciudad) { ?>selected<?php }  } ?>>
  87.                             <?php  echo $val_ciudad;?></option><?php
  88.                             } ?>
  89.                     </select>
  90.                 </td>
  91.             </tr>
  92.             <tr>
  93.                 <td style="background :#cccccc;"><b><label for="oficina" >OFICINA</label></b></td>
  94.                 <td>
  95.                     <select name=oficina id="id1" onchange=submit();  style="width:50%">
  96.                         <option value="s" disabled>Seleccione</option>
  97.                         <option></option><?php
  98.                         if(isset($_POST['ciudad'])){   
  99.                                 $ciudad1=strtr($_POST['ciudad'], $modificar1);
  100.                                 $consulta=mysqli_query($link,"SELECT nombre FROM `oficina` WHERE ciudad='$ciudad1' and estado='A' AND entidad='14' order by nombre");
  101.                                 while ($fila=mysqli_fetch_array($consulta)){
  102.                                     if(substr($fila['nombre'],-1,1)=="_"){
  103.                                         $var_oficina = strtr(substr($fila['nombre'],0,-1), $modificar);
  104.                                     }else{
  105.                                         $var_oficina = strtr($fila['nombre'], $modificar);
  106.                                     } ?>
  107.                                 <option <?php if(isset($_POST['oficina'])) {  if($_POST['oficina']==$var_oficina){ ?>selected<?php }
  108.                                 elseif($val_ofi==$var_oficina){?>selected<?php }  } ?>>
  109.                                 <?php echo $var_oficina;?></option>
  110.                           <?php }
  111.                         } ?>
  112.                     </select>
  113.                 </td>
  114.             </tr>
  115.        
  116.         </table>  
  117.     </form>
  118.   </body>
  119. </html>
  120. <?php
  121.             $var_ciudad = strtr($_POST['ciudad'], $modificar1);
  122.             $conc = mysqli_query($link,"SELECT ciudad FROM `oficina` WHERE CIUDAD like '%$var_ciudad%' AND entidad =14 group by ciudad");
  123.             $resc = mysqli_fetch_array($conc);
  124.             $ciudad = $resc['ciudad'];
  125.             $var_oficina = strtr($_POST['oficina'], $modificar1);
  126.             $consul = mysqli_query($link,"SELECT nombre FROM `oficina` WHERE entidad =14 and nombre like '%$var_oficina%' group by nombre");
  127.             $respu = mysqli_fetch_array($consul);
  128.             $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.