Foros del Web » Programando para Internet » PHP »

Necesito Ayuda

Estas en el tema de Necesito Ayuda en el foro de PHP en Foros del Web. en este script hago una busqueda, pero el combo al dar click en un combo se debe actualizar otro combo (eso me sale), el problema ...
  #1 (permalink)  
Antiguo 19/06/2003, 16:46
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 931
Antigüedad: 14 años, 6 meses
Puntos: 8
Necesito Ayuda

en este script hago una busqueda, pero el combo al dar click en un combo se debe actualizar otro combo (eso me sale), el problema es que el resto de los controles vuelven a su valor inicial.

Código PHP:
<?php
    $CONN
=mysql_connect("localhost","makcom_juan1978","1978") or die("No se puede establecer conexión con el servidor".mysql_error());
    
mysql_select_db("makcom_make",$CONN) or die("No se encuentra la base de datos".mysql_error());
    
    
//Abrir la tabla grupo_viv
    
$SQL_grupoviv="SELECT * FROM grupo_viv ORDER BY cod_grp";
    
$consul_grupoviv=mysql_query($SQL_grupoviv,$CONN) or die(mysql_error());
    
$object_grupoviv=mysql_fetch_object($consul_grupoviv) or die(mysql_error());
    
//Abrir la tabla id_ubicacion
    
$SQL_idubic="SELECT * FROM id_ubicacion ORDER BY id";
    
$consul_idubic=mysql_query($SQL_idubic,$CONN) or die(mysql_error());
    
    if (isset(
$ubicacion)){
        
$busca=$_POST['busca'];
        
$tipoinmueble=$_POST['tipoinmueble'];
        
$de=$_POST['de'];
        
$hasta=$_POST['hasta'];
        
$ubicacion=$_POST['ubicacion'];
    }
    if (!empty(
$_POST['enviado'])){
        echo 
"<div id=\"Layer2\" style=\"position:absolute; left:182px; top:86px; width:590px; height:59px; z-index:2\">";
          echo 
"<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">";
            echo 
"<tr bgcolor=\"#3399CC\">";
              echo 
"<td width=\"6%\" height=\"38\"><div align=\"center\"><font color=\"#FFFFFF\"><strong><font size=\"2\">Kardex</font></strong></font></div></td>";
              echo 
"<td width=\"10%\"><div align=\"center\"><font color=\"#FFFFFF\"><strong><font size=\"2\">Direcci&oacute;n / Referencias</font></strong></font></div></td>";
              echo 
"<td width=\"11%\"><div align=\"center\"><font color=\"#FFFFFF\"><strong><font size=\"2\">Urbanizaci&oacute;n</font></strong></font></div></td>";
              echo 
"<td width=\"9%\"><div align=\"center\"><font color=\"#FFFFFF\"><strong><font size=\"2\">Areas (m2)</font></strong></font></div></td>";
              echo 
"<td width=\"7%\"><div align=\"center\"><font color=\"#FFFFFF\"><strong><font size=\"2\">N&deg; Ambt.</font></strong></font></div></td>";
              echo 
"<td width=\"9%\"><div align=\"center\"><font color=\"#FFFFFF\"><strong><font size=\"2\">Precio $</font></strong></font></div></td>";
              echo 
"<td width=\"5%\"><div align=\"center\"><font color=\"#FFFFFF\"><strong><font size=\"2\">Foto</font></strong></font></div></td>";
              echo 
"<td width=\"5%\"><div align=\"center\"><font color=\"#FFFFFF\"><strong><font size=\"2\">Det.</font></strong></font></div></td>";
            echo 
"</tr>";
          echo 
"</table>";
        echo 
"</div>";
        
//Colocar los datos para llenar la tabla
        //$SQL_result="SELECT * FROM kardex WHERE "
    
} else {
        echo 
"<div id=\"Layer1\" style=\"position:absolute; left:10px; top:86px; width:250px; height:59px; z-index:1\">";
        echo 
"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";
        echo 
"<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">\n\n";
          echo 
"<tr>\n";
        echo 
"<td><strong><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">Que Busca?</font></strong></td>\n";
          echo 
"</tr>\n";
          echo 
"<tr>\n";
        echo 
"<td height=\"21\"><select name=\"busca\">\n";
            echo 
"<option value=\"comprar\">Comprar</option>\n";
            echo 
"<option value=\"comprar\">Alquilar</option>\n";
          echo 
"</select></td>\n";
          echo 
"</tr>\n";
          echo 
"<tr>\n";
        echo 
"<td><strong><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">Tipo de Inmuebles:</font></strong></td>\n";
          echo 
"</tr>\n";
          echo 
"<tr>\n";
        echo 
"<td><select name=\"tipoinmueble\">\n";
            echo 
"<option value=\"\">Seleccione...</option>\n";
                
mysql_data_seek($consul_grupoviv,0);
                while (
$tipoinm=mysql_fetch_assoc($consul_grupoviv)){
                    echo 
"<option value=\"".$tipoinm['cod_grp']."\">".$tipoinm['des_grp']."</option>\n";
                }
              echo 
"</select></td>\n";
          echo 
"</tr>\n";
          echo 
"<tr>\n";
        echo 
"<td><font size=\"2\" face=\"Arial, Helvetica, sans-serif\"><strong>Precios:</strong></font></td>\n";
          echo 
"</tr>\n";
          echo 
"<tr>\n";
        echo 
"<td><table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\">\n";
            echo 
"<tr>\n";
            echo 
"<td width=\"34%\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">&nbsp;De:</font></td>\n";
            echo 
"<td width=\"66%\"><select name=\"de\">\n";
                  echo 
"<option value=\"0\">US 0.00</option>\n";
                echo 
"<option value=\"10000\">US 10 000.00</option>\n";
                echo 
"<option value=\"20000\">US 20 000.00</option>\n";
                echo 
"<option value=\"30000\">US 30 000.00</option>\n";
                echo 
"<option value=\"40000\">US 40 000.00</option>\n";
                echo 
"<option value=\"50000\">US 50 000.00</option>\n";
                echo 
"<option value=\"100000\">US 100 000.00</option>\n";
                echo 
"<option value=\"300000\">US 300 000.00</option>\n";
                echo 
"<option value=\"500000\">US 500 000.00</option>\n";
                echo 
"<option value=\"700000\">US 700 000.00</option>\n";
                echo 
"<option value=\"1000000\">US 1 000 000.00</option>\n";
                echo 
"</select></td>\n";
            echo 
"</tr>\n";
            echo 
"<tr>\n";
                  echo 
"<td><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">&nbsp;Hasta:</font></td>\n";
                  echo 
"<td><select name=\"hasta\">\n";
                      echo 
"<option value=\"0\">US 0.00</option>\n";
                    echo 
"<option value=\"10000\">US 10 000.00</option>\n";
                    echo 
"<option value=\"20000\">US 20 000.00</option>\n";
                    echo 
"<option value=\"30000\">US 30 000.00</option>\n";
                    echo 
"<option value=\"40000\">US 40 000.00</option>\n";
                    echo 
"<option value=\"50000\">US 50 000.00</option>\n";
                    echo 
"<option value=\"100000\">US 100 000.00</option>\n";
                    echo 
"<option value=\"300000\">US 300 000.00</option>\n";
                    echo 
"<option value=\"500000\">US 500 000.00</option>\n";
                    echo 
"<option value=\"700000\">US 700 000.00</option>\n";
                    echo 
"<option value=\"1000000\">US 1 000 000.00</option>\n";
                echo 
"</select></td>\n";
            echo 
"</tr>\n";
          echo 
"</table></td>\n";
      echo 
"</tr>\n";
      echo 
"<tr>\n";
        echo 
"<td><strong><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">Ubicaci&oacute;n:</font></strong></td>\n";
      echo 
"</tr>\n";
      echo 
"<tr>\n";
        echo 
"<td><select name=\"ubicacion\" onChange=\"this.form.submit()\">\n\n";
            while (
$ubic=mysql_fetch_assoc($consul_idubic)){
                if (
$ubicacion == $ubic['id']){
                    echo 
"<option value=\"".$ubic['id']."\" selected>".$ubic['lugar']."</option>\n";
                } else {
                    echo 
"<option value=\"".$ubic['id']."\" selected>".$ubic['lugar']."</option>\n";
                }
            }
          echo 
"</select></td>\n";
      echo 
"</tr>\n";
      echo 
"<tr>\n";
        echo 
"<td><strong><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">Provincia o Distrito:</font></strong></td>\n";
      echo 
"</tr>\n";
      echo 
"<tr>\n"
      echo 
"<td><select name=\"provdist\">\n";
      if (!empty(
$ubicacion)){
          
$SQLprovdist="SELECT * FROM ubicacion WHERE id='".$_POST['ubicacion']."'";
        
$consul_provdist=mysql_query($SQLprovdist,$CONN) or die (mysql_error());
        if (
mysql_num_rows($consul_provdist) != 0){
            while (
$llenar_provdist=mysql_fetch_assoc($consul_provdist)){
                echo 
"<option value=\"".$llenar_provdist['cod_ubic']."\">".$llenar_provdist['des_ubic']."</option>\n";
            }
        } else {
            echo 
"<option value=\"\">Vacío</option>\n";
        }
      } else {
          echo 
"<option value=\"\">Vacío</option>\n";
      }
      echo 
"</select></td>\n";
      echo 
"</tr>\n";
      echo 
"<tr>\n";
        echo 
"<td>&nbsp;</td>\n";
      echo 
"</tr>\n";
      echo 
"<tr>\n";
        echo 
"<td> <div align=\"center\">\n";
            echo 
"<input name=\"enviado\" type=\"submit\" id=\"enviado\" value=\"Enviar consulta\">\n";
        echo 
"</div>\n</td>\n";
      echo 
"</tr>\n";
      echo 
"<tr>\n";
        echo 
"<td>&nbsp;</td>\n";
      echo 
"</tr>\n";
    echo 
"</table>\n";
    echo 
"</form>\n";
    echo 
"</div>";
    }
?>
la parte de los combos es:
Código PHP:
echo "<td><select name=\"ubicacion\" onChange=\"this.form.submit()\">\n\n";
            while (
$ubic=mysql_fetch_assoc($consul_idubic)){
                if (
$ubicacion == $ubic['id']){
                    echo 
"<option value=\"".$ubic['id']."\" selected>".$ubic['lugar']."</option>\n";
                } else {
                    echo 
"<option value=\"".$ubic['id']."\" selected>".$ubic['lugar']."</option>\n";
                }
            }
          echo 
"</select></td>\n";
      echo 
"</tr>\n";
      echo 
"<tr>\n";
        echo 
"<td><strong><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">Provincia o Distrito:</font></strong></td>\n";
      echo 
"</tr>\n";
      echo 
"<tr>\n"
      echo 
"<td><select name=\"provdist\">\n";
      if (!empty(
$ubicacion)){
          
$SQLprovdist="SELECT * FROM ubicacion WHERE id='".$_POST['ubicacion']."'";
        
$consul_provdist=mysql_query($SQLprovdist,$CONN) or die (mysql_error());
        if (
mysql_num_rows($consul_provdist) != 0){
            while (
$llenar_provdist=mysql_fetch_assoc($consul_provdist)){
                echo 
"<option value=\"".$llenar_provdist['cod_ubic']."\">".$llenar_provdist['des_ubic']."</option>\n";
            }
        } else {
            echo 
"<option value=\"\">Vacío</option>\n";
        }
      } else {
          echo 
"<option value=\"\">Vacío</option>\n";
      }
      echo 
"</select></td>\n"
Gracias
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 19/06/2003, 16:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrías fijater como se trabaja el tema de "listas dependientes" de esta FAQ:

http://www.forosdelweb.com/showthrea...608#post327608

Ahí se tienen en cuenta el hecho de que te quede seleccionado el elemento de la lista superior que seleccionastes.

A simple vista se ven cosas como esto:

Código PHP:
if ($ubicacion == $ubic['id']){
                    echo 
"<option value=\"".$ubic['id']."\" selected>".$ubic['lugar']."</option>\n";
                } else {
                    echo 
"<option value=\"".$ubic['id']."\" selected>".$ubic['lugar']."</option>\n";
                } 
Tienes que quitar el selected del } else { .. Pues para eso sirve ese condicional .. SI es igual el ID que propagas .. al que estás generando .. NO seleccionas .. ahí estás seleccionado siempre ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 19/06/2003, 17:16
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 931
Antigüedad: 14 años, 6 meses
Puntos: 8
ok Cluster, gracias, eso corrigió lo de los combos

pero el resto de los controles vuelven a su valor inicial, como hago para arreglar eso
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 19/06/2003, 17:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues el resto de controles .. en la mayoría no usas ese típo de estructuras if ( ... ) .. como en esos combos ..

Por ejemplo .. estos:
echo "<option value=\"0\">US 0.00</option>\n";

que tienes por ahí .. los tienes "fijos" .. deberías de meterlos en un array por lo menos para poder aplicar la misma técnica que en los "combos" (la del IF bajo el ID que le corresponda ..) .. En este caso ese "id" será el indice de tu array ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 19/06/2003, 17:34
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 931
Antigüedad: 14 años, 6 meses
Puntos: 8
uhmmm, voy a intentarlo.

Gracias.
__________________
El aprendiz.
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 22:44.