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

saludos a todos


tengo la siguiente calamidad:

tengo dos combos dependientes de ciudades y oficinas. estos funcionan perfectamente, pero tengo un input text que en el evento onblur=submit(); actualiza pagina y realiza una consulta a mysql dependiendo del codigo de la oficina y me trae los datos de ciudad y oficina. el problema radica en que cuando obtengo dichas variables, quiero que se ubiquen instantaneamente en el option correspondiente dentro de los select de ciudad y oficina. con el codigo que tengo a veces lo ubica, no funciona con todas las opciones, pero aunque lo ubica, el valor del post sigue siendo la anterior.
Código PHP:
Ver original
  1. <b>CODIGO: </b><input name=codigo placeholder="ejm : 248510" type="text" onblur="submit();" style="width:25%" >
  2.  
  3. <?php
  4. $modificar = array( '__'=>' - ', '_'=>' ');
  5.                 $modificar1 = array( ' - '=>'%%', ' '=>'%');
  6.                 if(isset($_POST['codigo']))
  7.                 {  
  8.                     if ($_POST['codigo'] != "")
  9.                     {   $codigo = $_POST['codigo'];
  10.                         $tipo = $_POST['tipo'];
  11.                         $query = mysqli_query($link,"SELECT ciudad, nombre FROM `oficina` WHERE entidad=14 AND codigo='$codigo' AND tipo='$tipo'");  
  12.                         $contar = mysqli_num_rows($query);
  13.                         $row = mysqli_fetch_array($query);
  14.                         if($contar > 0){
  15.                             if(substr($row['ciudad'],-1,1)=="_"){
  16.                                 $val_ciu = strtr(substr($row['ciudad'],0,-1), $modificar);
  17.                             }else{
  18.                                 $val_ciu = strtr($row['ciudad'], $modificar);
  19.                             }
  20.                             if(substr($row['nombre'],-1,1)=="_"){
  21.                                 $val_ofi = strtr(substr($row['nombre'],0,-1), $modificar);
  22.                             }else{
  23.                                 $val_ofi = strtr($row['nombre'], $modificar);
  24.                             }
  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.                             echo "<script> window.alert(' NO SE ENCONTRÓ $seleccion. POR FAVOR, INTENTELO NUEVAMENTE. '); </script>";
  37.                         }
  38.                     }else{
  39.                         $val_ciu = "";
  40.                         $val_ofi = "";
  41.                     }
  42.                 } ?>
  43.  
  44.  
  45.  
  46. <select name=ciudad onchange=submit(); style='width:50%'>
  47.                         <option value='s' disabled>Seleccione</option>
  48.                         <option></option><?php
  49.                         $consulta2=mysqli_query($link,"SELECT ciudad FROM `oficina` WHERE estado='A' AND entidad=14 GROUP BY ciudad ORDER BY ciudad");
  50.                             while ($fila2=mysqli_fetch_array($consulta2)) // se reemplazan _ por espacios para que no se visualicen en el select.
  51.                             {
  52.                                 if(substr($fila2['ciudad'],-1,1)=="_"){ //valida si el ultimo caracter de ciudad es _ para hacer la conversion de espacios.
  53.                                     $val_ciudad = strtr(substr($fila2['ciudad'],0,-1), $modificar);
  54.                                 }else{
  55.                                     $val_ciudad = strtr($fila2['ciudad'], $modificar);
  56.                                 }
  57.                                 ?>
  58.                         <option  <?php if(isset($_POST['ciudad'])) {  if($val_ciu==$val_ciudad){ ?>selected<?php }
  59.                         elseif($_POST['ciudad']==$val_ciudad) { ?>selected<?php }  } ?>>
  60.                         <?php  echo $val_ciudad;?></option><?php
  61.                             } ?>
  62.                     </select>
  63.  
  64.  
  65. <td>
  66.                     <select name=ciudad onchange=submit(); style='width:50%'>
  67.                         <option value='s' disabled>Seleccione</option>
  68.                         <option></option><?php
  69.                         $consulta2=mysqli_query($link,"SELECT ciudad FROM `oficina` WHERE estado='A' AND entidad=14 GROUP BY ciudad ORDER BY ciudad");
  70.                             while ($fila2=mysqli_fetch_array($consulta2)) // se reemplazan _ por espacios para que no se visualicen en el select.
  71.                             {
  72.                                 if(substr($fila2['ciudad'],-1,1)=="_"){ //valida si el ultimo caracter de ciudad es _ para hacer la conversion de espacios.
  73.                                     $val_ciudad = strtr(substr($fila2['ciudad'],0,-1), $modificar);
  74.                                 }else{
  75.                                     $val_ciudad = strtr($fila2['ciudad'], $modificar);
  76.                                 }
  77.                                 ?>
  78.                         <option  <?php if(isset($_POST['ciudad'])) {  if($val_ciu==$val_ciudad){ ?>selected<?php }
  79.                         elseif($_POST['ciudad']==$val_ciudad) { ?>selected<?php }  } ?>>
  80.                         <?php  echo $val_ciudad;?></option><?php
  81.                             } ?>
  82.                     </select>
  83.                 </td>