Foros del Web » Programando para Internet » PHP »

problema al cargar datos de una consulta sobre un select

Estas en el tema de problema al cargar datos de una consulta sobre un select en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/09/2015, 15:17
 
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.
  #2 (permalink)  
Antiguo 29/09/2015, 12:21
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: problema al cargar datos de una consulta sobre un select

jmg1189 Necesitas aprender a separar html de php.

Necesitas usar javascript, para tu proposito pues con ajax, puedes enviar el "codigo" que seleccionan en el primer combo a tu archivo php, para que este realice la busqueda de ofincinas y te retorne solo esa lista.

Mira estos dós ejemplos:
http://www.formatoweb.com.ar/ajax/se...pendientes.php
http://www.anieto2k.com/2008/05/27/c...es-php-jquery/

Si luego necesitas mas ayuda, escribes. Saludos.
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com

Etiquetas: html, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.