Foros del Web » Programando para Internet » PHP »

Redireccionar select desde mysql

Estas en el tema de Redireccionar select desde mysql en el foro de PHP en Foros del Web. Mi problema es el siguiente, he intentado diferentes metodos de como hacer para por ejemplo: En el inicio de la pagina hayan 3 tipos de ...
  #1 (permalink)  
Antiguo 12/01/2016, 20:07
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Redireccionar select desde mysql

Mi problema es el siguiente, he intentado diferentes metodos de como hacer para por ejemplo:

En el inicio de la pagina hayan 3 tipos de selects, uno de Estados, uno de Municipios y otro de Parroquias, lo que quiero es que los Estados que ya estan en mi base de datos y los municipios me redireccionen a una página, por ejemplo:

Selecciono:
Distrito Capital->Caracas y le doy click al botón enviar
Al seleccionarlo quiero que me redirija a www.mipagina.com/estados/distritocapital/caracas.php

Y lo mismo ya sea con cualquiera de los estados y de los municipios, y ya sea si seleccione solo el estado o solo el municipio o sea completo.

Gracias
  #2 (permalink)  
Antiguo 12/01/2016, 20:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Redireccionar select desde mysql

Eso se hace con JavaScript, no con PHP que no interactúa con los eventos del DOM.

Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){ // Documento cargado
  2.     document.querySelector("#id del <select>").addEventListener("change", function(){
  3.         location = "http://www.mipagina.com/estados/distritocapital/" + this.value + ".php";
  4.     }, false);
  5. }, false);

De esta forma, registras el evento change en el combo y cuando se produzca, es decir, cuando se elija una opción diferente, se realizará la redirección. Los valores de las opciones tendrán que ser los nombres de los archivos PHP, aunque pienso que sería mejor si tuvieras un archivo que obtuviera los datos de una base de datos según la opción elegida y según sea el caso, se proceda a mostrar los datos correspondientes.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 12/01/2016, 20:52
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Redireccionar select desde mysql

Cita:
Iniciado por Alexis88 Ver Mensaje
Eso se hace con JavaScript, no con PHP que no interactúa con los eventos del DOM.

Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){ // Documento cargado
  2.     document.querySelector("#id del <select>").addEventListener("change", function(){
  3.         location = "http://www.mipagina.com/estados/distritocapital/" + this.value + ".php";
  4.     }, false);
  5. }, false);

De esta forma, registras el evento change en el combo y cuando se produzca, es decir, cuando se elija una opción diferente, se realizará la redirección. Los valores de las opciones tendrán que ser los nombres de los archivos PHP, aunque pienso que sería mejor si tuvieras un archivo que obtuviera los datos de una base de datos según la opción elegida y según sea el caso, se proceda a mostrar los datos correspondientes.

Un saludo
Gracias por responder,
Ok pero por lo que veo en location pusiste el url que puse en la pregunta pero me refiero es que por ejemplo los select estan conectados a mi base de datos y ya sea que el select me desplegue en el primero los estados y en el segundo los municipios como hago para que el que se seleccione se vuelva una carpeta según el seleccionado? y ese código que pusiste donde iría? en el botón de submit?
  #4 (permalink)  
Antiguo 12/01/2016, 21:05
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Redireccionar select desde mysql

Hola @Byrong, lo que te ha dado @Alexis88 es para hacerlo justo en el momento en que el usuario cambie los select, no cuando le des click al botón enviar. Aquí una forma con PHP para que lo haga en el momento que le das ENVIAR a tu formulario.

En el value de los select colocas la carpeta del estado y el nombre del archivo php del municpio, por ejemplo puedes hacer esto.
Código HTML:
Ver original
  1. <select id="estados" name="estados">
  2. <option value="distritocapital">Distrito Capital</option>
  3.  
  4. <select id="municipios" name="municipios">
  5. <option value="caracas">Caracas</option>

Y en el php, lo recibes así.
Código PHP:
Ver original
  1. $estado = $_POST['estados'];
  2. $municipio = $_POST['municipio'];
  3.  
  4. header("Location: http://www.tupagina.com/estados/$estado/$municipio.php");
  #5 (permalink)  
Antiguo 12/01/2016, 21:15
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Redireccionar select desde mysql

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Hola @Byrong, lo que te ha dado @Alexis88 es para hacerlo justo en el momento en que el usuario cambie los select, no cuando le des click al botón enviar. Aquí una forma con PHP para que lo haga en el momento que le das ENVIAR a tu formulario.

En el value de los select colocas la carpeta del estado y el nombre del archivo php del municpio, por ejemplo puedes hacer esto.
Código HTML:
Ver original
  1. <select id="estados" name="estados">
  2. <option value="distritocapital">Distrito Capital</option>
  3.  
  4. <select id="municipios" name="municipios">
  5. <option value="caracas">Caracas</option>

Y en el php, lo recibes así.
Código PHP:
Ver original
  1. $estado = $_POST['estados'];
  2. $municipio = $_POST['municipio'];
  3.  
  4. header("Location: http://www.tupagina.com/estados/$estado/$municipio.php");
Hola, gracias por responder.

Ok, pero en el html los nombres vienen desde mysql, como haría entonces? o crees que es mejor que lo haga como tu dices con cada uno de los estados y municipios?

Te muestro el código que tengo en el index.php para el select de estados...

Código PHP:
        $re=mysql_query("select * from estados");

        if(isset($_POST['estados'])){
            $estado=$_POST['estados'];
            $re1=mysql_query("select * from municipios where id_estado=".$estado."");
            $re2=mysql_query("select nombreestado from estados where id_estado=".$estado."");
            $j=mysql_fetch_array($re2);


        }else{
        @$j[nombreestado]='Seleccione su Estado:'; }

        ?>
        <form id="form1" name="form1" method="post" action="">
            <input name="nombre" type="hidden" valor="<?php $_POST['nombre'];?>"
            <br>
            <br>


        <select name="estados" size="1" id="estados" onchange="submit()" style="width:200px">
        <option value="0" selected="selected"><?php echo @$j[nombreestado];?></option>
        <?php

        
while($f=mysql_fetch_array($re)){
        echo 
'<option value='.$f[id_estado].'>'.$f[nombreestado].'</option>';

        }
        
?>
  #6 (permalink)  
Antiguo 12/01/2016, 21:29
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Redireccionar select desde mysql

Vale ahí no cambiaría mucho. En el php que reciba los datos tendrías

Código PHP:
Ver original
  1. $idEstado = $_POST['estados'];

Y con dicha variable, haces una consulta a la base de datos, seleccionando la fila que contenga el contenido que llevará la url.

Código PHP:
Ver original
  1. $idEstado = $_POST['estados'];

Obteniendo ese valor, es el que concatenaras para hacer el redirect. Saludos.

Edito. Veo que lo que te comento ya lo tienes en $re2. Te faltaría añadir lo del municipio y listo, haces el redirect.
  #7 (permalink)  
Antiguo 13/01/2016, 17:09
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Redireccionar select desde mysql

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Vale ahí no cambiaría mucho. En el php que reciba los datos tendrías

Código PHP:
Ver original
  1. $idEstado = $_POST['estados'];

Y con dicha variable, haces una consulta a la base de datos, seleccionando la fila que contenga el contenido que llevará la url.

Código PHP:
Ver original
  1. $idEstado = $_POST['estados'];

Obteniendo ese valor, es el que concatenaras para hacer el redirect. Saludos.

Edito. Veo que lo que te comento ya lo tienes en $re2. Te faltaría añadir lo del municipio y listo, haces el redirect.
@rodocoyote15, ya se que lo que me dijiste era para la redirección, pero ahora tengo este problema, como hago para que al momento de dar click por ejemplo en trujillo me muestre en el otro selectson los municipios de trujillo? le doy click en cualquier estado y me salen los municipios de trujillo ya que son los únicos que tengo registrados en la db, te dejo el código para que veas...

Código PHP:
<form id="form1" name="form1" method="post" action="">

                <select id="estados" name="estados" onchange="submit()">
<option value=""><?php echo @$j[nombreestado];?></option>
        <?php
        
while ($f=mysql_fetch_array($re)){
            echo 
'<option value='.$f[id_estado].'>'.$f[nombreestado].'</option>';
        }
        
?>
    </form>
</select>
 <form id="" name="" method="post" action="">
<select id="municipios" name="municipios" onchange="submit()">
<option value=""><?php echo @$m[nombremunicipio]?></option>
    <?php
    
if(isset($_POST['estados'])){
    while (
$k=mysql_fetch_array($mu)){
        echo 
'<option value='.$m[id_municipio].'>'.$k[nombremunicipio].'</option>';
    }
}
    else{
        @
$m[nombremunicipio]='Seleccione el Municipio:';
    
    }
    
?>
intenté colocarle el else en el segundo select para que veas pero igualmente al seleccionar que si por ejemplo el estado amazonas me salen los del estado trujillo en el otro select...
  #8 (permalink)  
Antiguo 13/01/2016, 18:13
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Redireccionar select desde mysql

Eso ya toca con jquery y una petición ajax. Así cada que cambies de estado, haces la petición y se te despliegan los municpios que le pertenecen. Checa este tema donde se pide lo mismo. Saludos http://www.forosdelweb.com/f4/creacion-lista-opciones-1144948/#post4767078
  #9 (permalink)  
Antiguo 13/01/2016, 19:14
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Redireccionar select desde mysql

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Eso ya toca con jquery y una petición ajax. Así cada que cambies de estado, haces la petición y se te despliegan los municpios que le pertenecen. Checa este tema donde se pide lo mismo. Saludos http://www.forosdelweb.com/f4/creacion-lista-opciones-1144948/#post4767078
Disculpa tanta molestia por el mismo tema pero de algún modo u otro tengo que aprender...

Hice lo que me dijiste y al intentar hacer submit para que al dar click en el estado salgan los municipios queda igual, es decir-> doy click en Trujillo y la página se reinicia y me vuelve a salir seleccione estado.-
Te dejo el código acá

Código PHP:
$re=mysql_query("select * from estados");
        $mu=mysql_query("select * from municipios");

        if(isset($_POST['estados'])){
            $estado=$_POST['estados'];
            $re1=mysql_query("select * from municipios where id_estado=".$estado."");
            $re2=mysql_query("select nombreestado from estados where id_estado=".$estado."");
            $j=mysql_fetch_array($re2);
            $m=mysql_fetch_array($re1);
            $id_estado=mysql_query("select * from estados where id_estado");
            $id_municipio=mysql_query("select * from municipios where id_municipio");

            }else{
        @$j[nombreestado]='Seleccione su Estado:';
        @$m[nombremunicipio]='Seleccione el Municipio:';}

        ?>
        <form id="form1" name="form1" method="post" action="">
 
<select class='form-control' name="padre" id="padre" onchange="submit()">

            <option value="" selected=""><?php echo @$j[nombreestado];?></option>
            <?php
        
while ($f=mysql_fetch_array($re)){
            echo 
'<option value="">'.$f[nombreestado].'</option>';      
           
         }
         
?>
 </select>
</form>
 <form id="" name="" method="post" action="">
<select class="form-control" id="hijo" name="hijo" onchange="submit()">
            <option value=""><?php echo @$m[nombremunicipio]?></option>
            <?php
    
if(isset($_POST['estados'])){
    while (
$k=mysql_fetch_array($mu)){
        echo 
'<option value='.$m[id_municipio].'>'.$k[nombremunicipio].'</option>';
    }
}
    else{
        @
$m[nombremunicipio]='Seleccione el Municipio:';
    
    }
    
?>
            <script language="JavaScript" type="text/JavaScript">
            $(document).ready(function(){
                $("#padre").change(function(event){                    
                    var id = $("#padre").find(':selected').val();
 
                    $("#hijo").load('php/generaSelect.php?id='+id);   //llamas al php donde devolverá los datos del select "hijo"                 
                });
            });
            </select>
  #10 (permalink)  
Antiguo 13/01/2016, 19:20
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Redireccionar select desde mysql

Es que no vas a necesitar boton para hacer el submit del estado, el código que proporciono hace que al momento de seleccionar al Select Padre, el select hijo modifique sus option automáticamente sin necesidad de botón, gracias a jquery.

Por cierto, te haría falta incluir dichas librerías de jquery para que funcione.
Veo que los select tienen un atributo onchange, al menos para lo que te recomiendo no lo necesitas.
Y en el select hijo no necesitas colocar nada de codigo haciendo consultas, solo el option que diga "Seleccione municipio".

Si quieres ver un ejemplo, produccion.evamagic.com.ar checa los select, verás que varían sin necesidad de botón. Por aquí ando, saludos
  #11 (permalink)  
Antiguo 15/01/2016, 12:11
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Redireccionar select desde mysql

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Es que no vas a necesitar boton para hacer el submit del estado, el código que proporciono hace que al momento de seleccionar al Select Padre, el select hijo modifique sus option automáticamente sin necesidad de botón, gracias a jquery.

Por cierto, te haría falta incluir dichas librerías de jquery para que funcione.
Veo que los select tienen un atributo onchange, al menos para lo que te recomiendo no lo necesitas.
Y en el select hijo no necesitas colocar nada de codigo haciendo consultas, solo el option que diga "Seleccione municipio".

Si quieres ver un ejemplo, produccion.evamagic.com.ar checa los select, verás que varían sin necesidad de botón. Por aquí ando, saludos
Amigo se que repetí el post pero la verdad no encuentro en google ni acá una forma de hacer el botón de select me redirija(lo que comente en el otro post)... Necesito que el botón me redirija a estados/trujillo/valera por ejemplo, como ya comente tipo tucarro.com, ya sea que se seleccione o no una opción, no encuentro forma alguna en google de hacerlo... Gracias y disculpa

Etiquetas: mysql, redireccionar, select
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 11:38.