Foros del Web » Programando para Internet » PHP »

Botón submit para selects anidados

Estas en el tema de Botón submit para selects anidados en el foro de PHP en Foros del Web. He creado unos selects anidados con javascript y mysql y quiero que al momento de por ejemplo seleccionar Estado: Distrito Capital - Municipio: Chacao - ...
  #1 (permalink)  
Antiguo 14/01/2016, 23:43
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Botón submit para selects anidados

He creado unos selects anidados con javascript y mysql y quiero que al momento de por ejemplo seleccionar Estado: Distrito Capital - Municipio: Chacao - Localidad: Chacao, darle click a un boton submit y que me lleve que si a localhost/estado/distritocapital/chacao/chacao.php y así sea con cualquiera de cada uno de los estados y municipios.
  #2 (permalink)  
Antiguo 14/01/2016, 23:59
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Botón submit para selects anidados

Por favor, no dupliques temas :D
Saludos.
  #3 (permalink)  
Antiguo 15/01/2016, 00:10
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Botón submit para selects anidados

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Por favor, no dupliques temas :D
Saludos.
Hola, la verdad no encuentro como borrar el tema, pero no se si era preferible seguir escribiendo preguntas en el otro o crear uno nuevo..

Pues ya con lo que me ayudaste ya pude hacer todo, pero ahora no encuentro al momento de dar click al botón submit me redirija como ya lo explique...
  #4 (permalink)  
Antiguo 15/01/2016, 13:15
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 2 meses
Puntos: 21
Respuesta: Botón submit para selects anidados

Podrías establecer los datos para formar la url en un atributo "data" para cada opción dentro del select, de ahí recogerlo con javascript para formar la url y luego reemplazar en el formulario el atributo "action".
  #5 (permalink)  
Antiguo 15/01/2016, 13:33
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Botón submit para selects anidados

<option value="5000" rel="chacao">chacao</option>



saca el valor del atributo rel o data como dice el compañero arriba con javascript.



bye.
  #6 (permalink)  
Antiguo 15/01/2016, 13:52
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Botón submit para selects anidados

Cita:
Iniciado por __SDP__ Ver Mensaje
<option value="5000" rel="chacao">chacao</option>

saca el valor del atributo rel o data como dice el compañero arriba con javascript.

bye.
Gracias por responder, pero los datos, los estados y municipios vienen desde mysql así que como haría? se que en tucarro.com hacen algo y estuve revisando y es con javascript pero la verdad no hallo la forma de hacerlo...

Gracias.
  #7 (permalink)  
Antiguo 15/01/2016, 13:55
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Botón submit para selects anidados

desde el otro tema que creaste que leei que pones que vienen de mysql,

¿tu pregunta es como saco los datos de mysql y hago eso?
  #8 (permalink)  
Antiguo 15/01/2016, 14:07
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Botón submit para selects anidados

Cita:
Iniciado por __SDP__ Ver Mensaje
desde el otro tema que creaste que leei que pones que vienen de mysql,

¿tu pregunta es como saco los datos de mysql y hago eso?
Te adjunto imagen:


Lo que quiero es por ejemplo al darle al botón enviar y tramitar me dirija a lo que seleccione, por ejemplo mipagina.com/estados/trujillo/valera/lapuerta.php e igualmente si selecciono o no la localidad me dirija a mipagina.com/estados/trujillo/valera.php

Todos los datos que ves ahí los traigo desde el mysql, lo que quiero es que al seleccionar el botón me redirija como te explique
  #9 (permalink)  
Antiguo 15/01/2016, 14:37
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Botón submit para selects anidados

Código HTML:
Ver original
  1.  
  2. function send_url(){
  3.         var estado = document.getElementById('id-estados')[0].getAttribute("rel");
  4.      
  5.       alert(estado);
  6.      
  7. }
  8.  
  9. </head>
  10.  
  11.  
  12. <form action="" method="post" onsubmit="send_url(); return false;">
  13.  
  14.  
  15.     <select id="id-estados">
  16.         <option value="5000" rel="santiago">santiago</option>
  17.         <option value="5001" rel="concepcion">concepción</option>
  18.     </select>
  19.     <input type="submit" value="enviar">
  20. </form>
  21.  
  22.  
  23. </body>
  24. </html>
  #10 (permalink)  
Antiguo 15/01/2016, 14:47
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Botón submit para selects anidados

sorry, ahora si este codigo funciona


Código HTML:
Ver original
  1.  
  2. function send_url(){
  3.         var opcion = document.getElementById('id-estados');
  4.         var estado = opcion[opcion.selectedIndex].getAttribute("rel");
  5.      
  6.       alert(estado);  
  7.  
  8.      
  9. }
  10.  
  11. </head>
  12.  
  13.  
  14. <form action="" method="post" onsubmit="send_url(); return false;">
  15.  
  16.  
  17.     <select id="id-estados">
  18.         <option value="5000" rel="santiago">santiago</option>
  19.         <option value="5001" rel="concepcion">concepción</option>
  20.     </select>
  21.     <input type="submit" value="enviar">
  22. </form>
  23.  
  24.  
  25. </body>
  #11 (permalink)  
Antiguo 15/01/2016, 22:31
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Botón submit para selects anidados

No sé cómo no has encontrado info en google
Solo busca cómo imprimir datos de mysql en pagina php y listo, en el rel, data o id colocas el valor recibido por mysql. Y lo mandas por javascript, del otro lado recibes y generas la url con los datos obtenidos.
  #12 (permalink)  
Antiguo 16/01/2016, 23:19
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Botón submit para selects anidados

Cita:
Iniciado por rodocoyote15 Ver Mensaje
No sé cómo no has encontrado info en google
Solo busca cómo imprimir datos de mysql en pagina php y listo, en el rel, data o id colocas el valor recibido por mysql. Y lo mandas por javascript, del otro lado recibes y generas la url con los datos obtenidos.
No encuentro manera de hacerlo como ya explique.
Intente de otro modo y el submit me da en la url es esto "localhost/?estado=20&municipio=&localidad="
Necesito que me redirija a localhost/estado/20 por ejemplo... la verdad ya no encuentro manera ya que hice como dijiste con lo de imprimir datos y no hallo la forma de hacerlo.
  #13 (permalink)  
Antiguo 17/01/2016, 10:17
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Botón submit para selects anidados

Si estás enviandolo por GET obviamente la url te aparecerá así como te aparece. Suponiendo que te llega "?estado=20" en ese mismo archivo pones:
header("Location:" /estado/$_GET['estado']/$_GET['municipio'/); Por ejemplo.

Si lo haces por POST, solo cambiarías la sintaxis por POST
  #14 (permalink)  
Antiguo 17/01/2016, 22:11
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: Botón submit para selects anidados

Si los <select> cargarán la información de manera dinámica, es decir, elegirás una opción del primer <select> y luego tendrán que cargar opciones relacionadas a dicha opción pero en el segundo <select> y la misma situación será con el segundo y tercer <select>, puedes hacer lo que explicaré a continuación.

1. Dentro del formulario, añade tres secciones:
Código HTML:
Ver original
  1. <form id="ejemplo">
  2.     <section></section>
  3.     <section></section>
  4.     <section></section>
  5. </form>

2. Crea una función que realizará las respectivas peticiones asíncronas (AJAX) para obtener los datos de la base de datos con los cuales armarás los <select>:
Código Javascript:
Ver original
  1. var ajax = function(opciones){
  2.     var xhr = new XMLHttpRequest(),
  3.         url = "tuArchivo.php?nivel=" + opciones.nivel;
  4.  
  5.     if (opciones.valor){
  6.         url += "&valor=" + opciones.valor;
  7.     }
  8.  
  9.     xhr.open("GET", url, true);
  10.     xhr.send();
  11.     xhr.addEventListener("load", function(){
  12.         if (this.status == 200){
  13.             opciones.seccion.innerHTML = this.responseText;
  14.         }
  15.     }, false);
  16. };

3. Crea el script en el archivo PHP que procesará esta petición, realizará la búsqueda en la base de datos y creará el respectivo <select>:
Código PHP:
Ver original
  1. <?php
  2. $conexion = new mysqli('servidor', 'usuario', 'clave', 'base de datos');
  3. if ($conexion->connect_errno) exit($conexion->connect_errno . ': ' . $conexion->connect_error);
  4.  
  5. $nivel = $conexion->real_escape_string(strip_tags(trim($_GET['nivel'])));
  6. $valor = isset($_GET['valor']) ? $conexion->real_escape_string(strip_tags(trim($_GET['valor']))) : '';
  7.  
  8. $campoCodigo = 'tabla' . $nivel . '_codigo';
  9. $campoNombre = 'tabla' . $nivel . '_nombre';
  10. $campoClave = 'tabla' . $nivel . '_campoClave';
  11. $tabla = 'tabla' . $nivel;
  12.  
  13. $consulta = "SELECT $campoCodigo, $campoNombre FROM $tabla";
  14. if (strlen($valor)){
  15.     $consulta .= " WHERE $campoClave = '$valor'";
  16. }
  17.  
  18. $resultados = $conexion->query($consulta) or exit($conexion->error);
  19.  
  20. if ($resultados->num_rows){
  21. ?>
  22.     <select class="combo">
  23. <?php
  24.     while($registros = $resultados->fetch_assoc()){
  25. ?>
  26.         <option value="<?=$registro[$campoCodigo]?>"><?=$registro[$campoNombre]?></option>
  27. <?php
  28.     }
  29.     $resultados->free();
  30. ?>
  31.     </select>
  32. <?php
  33. }
  34.  
  35. $conexion->close();

4. Para que el primer <select> aparezca luego de haber cargado la página, necesitas hacer la llamada a la función ajax() pasándole los respectivos valores. Esto se ejecutará luego de ocurrido el evento DOMContentLoaded el cual se dispara cuando han terminado de cargar los elementos del documento:
Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     ajax({
  3.         nivel: 1,
  4.         seccion: document.querySelector("#ejemplo section") //Por defecto, toma a la primera
  5.     });
  6. }, false);

5. Para realizar las llamadas por cada vez que se elija un valor en cualquiera de los <select> y ya que estos cargarán de manera dinámica, debes asociar el evento change al documento, de tal forma que al ocurrir, tomas al elemento en el cual se produjo el evento y podrás enviar los datos que le correspondan:
Código Javascript:
Ver original
  1. document.addEventListener("change", function(event){
  2.     if (event.target.className == "combo"){
  3.         ajax({
  4.             nivel: [].indexOf.call(document.querySelectorAll(".combo"), event.target) + 1,
  5.             seccion: event.target.parentNode,
  6.             valor: event.target.value
  7.         });
  8.     }
  9. }, false);

6. Cuando ya tengas a los tres <select> y hayas seleccionado las respectivas opciones, puedes proceder a realizar el redireccionamiento, para lo cual tendrás que cancelar el evento submit el cual ocurre cuando se inicia el envío de los datos del formulario. Para esto, deberás utilizar el método .preventDefault():
Código Javascript:
Ver original
  1. document.querySelector("#ejemplo").addEventListener("submit", function(event){
  2.     event.preventDefault(); //Cancelamos el envío
  3.  
  4.     var combos = document.querySelectorAll(".combo"),
  5.         direccion = "http://www.ejemplo.com/" + combos[0].value + "/" + combos[1].value + "/" + combos[2].value;
  6.  
  7.     location = direccion;
  8. }, false);

Todo el código JavaScript debe quedar junto y en el orden descrito, es decir:
Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     //Punto 2
  3.     //Punto 4 (solo la llamada a la función)
  4.     //Punto 5
  5.     //Punto 6
  6. }, false);

En resumen, tenemos tres secciones dentro del formulario en las que cargarán los tres <select>. Al terminar de cargar la página, se llamará a la función ajax() a la cual se le pasarán los valores del nivel (número de <select>) y la sección en la cual aparecerá. Dichos datos se pasan a la función a través de un objeto literal. En la función, se crea una instancia del objeto XMLHttpRequest para realizar la petición asíncrona (AJAX), se reciben los valores y si se ha recibido el valor a tratar en la condición de la consulta a la base de datos, se lo adhiere a cadena de consulta y la ruta del archivo PHP. Se realiza el envío y cuando se reciba la respuesta, se la mostrará en la sección que se haya designado.

En el archivo PHP, se realiza la conexión a la base de datos, se verifica si no se realizó para terminar la ejecución del script y se reciben y limpian los datos recibidos. Así como en la función ajax(), se verifica si se recibió el valor para la condición de la consulta SQL. Enseguida, se procede a elaborar la consulta, se la ejecuta y si se obtienen resultados, se procede a crear al respectivo <select>, el cual tendrá por clase el valor "combo" y se le asignarán las opciones según los registros obtenidos de la consulta a la base de datos. Finalmente, dicho <select> será la respuesta que recibirá la función ajax() y que mostrará en la sección respectiva.

Para este ejemplo, he supuesto que los nombres de las tablas de la base de datos tienen la forma "tabla", seguido del número de tabla según corresponde a cada <select>, esto con el fin de reutilizar el mismo script para realizar distintas consultas a la base de datos, por lo que si los nombres de tus tablas no tienen una forma similar, te sugiero hacerlo de un modo parecido o quizá de otra forma que creas conveniente pero que se adapte al algoritmo propuesto. También puedes tener distintos archivos PHP para elaborar cada <select>, pero sería algo poco eficiente y elegante. Si deseas, puedes utilizar una clase para el tratamiento de los datos en el lado del servidor; por ejemplo, una clase con un método para realizar la conexión, otro para limpiar a los datos recibidos, otra para armar la consulta SQL, otra para ejecutarla, y así.

La delegación del evento change al documento se debe a que no puedes registrar un evento a un elemento que ha cargado después de que haya cargado el documento, como ocurre en los casos de los <select> y otros elementos cargados dinámicamente, por lo que utilizar una clase en común, puede ser de mucha ayuda, como en este caso.

Para obtener al elemento en el que ocurrió el evento, debes acceder a él mediante la propiedad target del objeto del evento. Para obtener a la sección que contiene al <select> en el cual se ha cambiado el valor, debes acceder a ella mediante la propiedad parentNode. Para obtener al nivel, es decir, el número de <select> en el cual ha ocurrido el cambio de valor, debes utilizar una instancia del método .indexOf(), el cual devuelve la posición del elemento en cuestión dentro de —en este caso— la lista de nodos cuya clase es "combo", empezando desde la posición cero, razón por la cual le sumo 1. La lista de nodos es devuelta por el método .querySelectorAll().

Como se trata de un ejemplo, tienes que adaptarlo a lo que necesitas. Si tienes alguna duda, coméntala por aquí.

TIP DE AYUDA: Si quieres utilizar otro valor para los <select> que no sea el valor que estos toman de la opción seleccionada, puedes utilizar atributos personalizados.

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

Última edición por Alexis88; 18/01/2016 a las 10:17 Razón: Mensaje de error de conexión
  #15 (permalink)  
Antiguo 18/01/2016, 12:33
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Botón submit para selects anidados

Cita:
Iniciado por Alexis88 Ver Mensaje
Si los <select> cargarán la información de manera dinámica, es decir, elegirás una opción del primer <select> y luego tendrán que cargar opciones relacionadas a dicha opción pero en el segundo <select> y la misma situación será con el segundo y tercer <select>, puedes hacer lo que explicaré a continuación.
Un saludo
Primero que nada gracias.
Amigo los selects me funcionan de manera perfecta como mostré en la imagen que comente en este post, use este código javascript(esto se encuentra dentro del index.php entre [inline]<script></script>
Código Javascript:
Ver original
  1. $("#estado").on("change", buscarMunicipios);
  2. $("#municipio").on("change", buscarLocalidades);
  3.  
  4. function buscarMunicipios(){
  5.     $("#localidad").html("<option value=''>Seleccione una Localidad</option>");
  6.    
  7.     $estado = $("#estado").val();
  8.    
  9.     if($estado == ""){
  10.             $("#municipio").html("<option value=''>Seleccione un Estado</option>");
  11.     }
  12.     else {
  13.         $.ajax({
  14.             dataType: "json",
  15.             data: {"estado": $estado},
  16.             url:   'include/buscar.php',
  17.             type:  'post',
  18.             beforeSend: function(){
  19.                 //Lo que se hace antes de enviar el formulario
  20.                 },
  21.             success: function(respuesta){
  22.                 //lo que se si el destino devuelve algo
  23.                 $("#municipio").html(respuesta.html);
  24.             },
  25.             error:  function(xhr,err){
  26.                 alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status+"\n \n responseText: "+xhr.responseText);
  27.             }
  28.         });
  29.     }
  30. }
  31.  
  32. function buscarLocalidades(){
  33.     $municipio = $("#municipio").val();
  34.    
  35.     $.ajax({
  36.         dataType: "json",
  37.         data: {"municipio": $municipio},
  38.         url:   'include/buscar.php',
  39.         type:  'post',
  40.         beforeSend: function(){
  41.             //Lo que se hace antes de enviar el formulario
  42.             },
  43.         success: function(respuesta){
  44.             //lo que se si el destino devuelve algo
  45.             $("#localidad").html(respuesta.html);
  46.         },
  47.         error:  function(xhr,err){
  48.             alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status+"\n \n responseText: "+xhr.responseText);
  49.         }
  50.     });
  51. }

en otro archivo llamado buscar.php tengo esto:
Código PHP:
<?php
require_once("funciones.php");

if(isset(
$_POST['estado'])){
    
    
$municipios dameMunicipio($_POST['estado']);
    
    
$html "<option value=''>Seleccione un Municipio</option>";
    foreach(
$municipios as $indice => $registro){
        
$html .= "<option value='".$registro['idmunicipio']."'>".$registro['nombremunicipio']."</option>";
    }
    
    
$respuesta = array("html"=>$html);
    echo 
json_encode($respuesta);
}

if(isset(
$_POST['municipio'])){
    
    
$localidadesdameLocalidad($_POST['municipio']);
    
    
$html "<option value=''>Seleccione una Localidad</option>";
    foreach(
$localidades as $indice => $registro){
        
$html .= "<option value='".$registro['idlocalidad']."'>".$registro['nombrelocalidad']."</option>";
    }
    
    
$respuesta = array("html"=>$html);
    echo 
json_encode($respuesta);
}

    if(isset(
$_POST['categoria'])){
        
$categorias dameCategoria($_POST['categoria']);

        
$html "<option value=''>Seleccione su busqueda</option>";
        foreach (
$categorias as $indice => $registro) {
            
$html .= "<option value='".$registro['idcategoria']."'>".$registro['nombrecategoria']."</option>";
        }
        
        
$respuesta = array("html"=>$html);
    echo 
json_encode($respuesta);

    }
?>
y en otro llamado funciones.php tengo esto:

Código PHP:
<?php


/* Archivo para funciones */

function conectaBaseDatos(){
    try{
        
$servidor "xxx";
        
$puerto "xxx";
        
$basedatos "xxx";
        
$usuario "xxx";
        
$contrasena "xxx";
    
        
$conexion = new PDO("mysql:host=$servidor;port=$puerto;dbname=$basedatos",
                            
$usuario,
                            
$contrasena,
                            array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
        
        
$conexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODEPDO::FETCH_ASSOC);
        return 
$conexion;
    }
    catch (
PDOException $e){
        die (
"No se puede conectar a la base de datos"$e->getMessage());
    }
}

function 
dameEstado(){
    
$resultado false;
    
$consulta "SELECT * FROM estados";
    
    
$conexion conectaBaseDatos();
    
$sentencia $conexion->prepare($consulta);
    
    try {
        if(!
$sentencia->execute()){
            
print_r($sentencia->errorInfo());
        }
        
$resultado $sentencia->fetchAll();
        
//$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
        
$sentencia->closeCursor();
    }
    catch(
PDOException $e){
        echo 
"Error al ejecutar la sentencia: \n";
            
print_r($e->getMessage());
    }
    
    return 
$resultado;
}

function 
dameMunicipio($estado ''){
    
$resultado false;
    
$consulta "SELECT * FROM municipios";
    
    if(
$estado != ''){
        
$consulta .= " WHERE idestado = :nombreestado";
    }
    
    
$conexion conectaBaseDatos();
    
$sentencia $conexion->prepare($consulta);
    
$sentencia->bindParam('nombreestado',$estado);
    
    try {
        if(!
$sentencia->execute()){
            
print_r($sentencia->errorInfo());
        }
        
$resultado $sentencia->fetchAll();
        
//$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
        
$sentencia->closeCursor();
    }
    catch(
PDOException $e){
        echo 
"Error al ejecutar la sentencia: \n";
            
print_r($e->getMessage());
    }
    
    return 
$resultado;
}

function 
dameLocalidad($municipio ''){
    
$resultado false;
    
$consulta "SELECT * FROM localidades";
    
    if(
$municipio != ''){
        
$consulta .= " WHERE idmunicipio = :nombremunicipio";
    }
    
    
$conexion conectaBaseDatos();
    
$sentencia $conexion->prepare($consulta);
    
$sentencia->bindParam('nombremunicipio',$municipio);
    
    try {
        if(!
$sentencia->execute()){
            
print_r($sentencia->errorInfo());
        }
        
$resultado $sentencia->fetchAll();
        
//$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
        
$sentencia->closeCursor();
    }
    catch(
PDOException $e){
        echo 
"Error al ejecutar la sentencia: \n";
            
print_r($e->getMessage());
    }
    
    return 
$resultado;
}
    function 
dameCategoria(){
        
$resultado false;
        
$consulta "SELECT * FROM categorias";

        
$conexion conectaBaseDatos();
        
$sentencia $conexion->prepare($consulta);
        try {
        if(!
$sentencia->execute()){
            
print_r($sentencia->errorInfo());
        }
        
$resultado $sentencia->fetchAll();
        
//$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
        
$sentencia->closeCursor();
    }
    catch(
PDOException $e){
        echo 
"Error al ejecutar la sentencia: \n";
            
print_r($e->getMessage());
    }
    
    return 
$resultado;
}


?>
Bueno la verdad esto me funciona perfectamente para lo que ya hable de los selects que al momento de seleccionar un estado cambia de inmediato, me pregunto si eso que me mandaste hay alguna manera de adaptarlo a este código ya que pues como ves ya lo tengo listo y eso que me mandaste pues tengo que ponerme a estudiar AJAX porque no entendí practicamente casi nada, entonces ¿Habría alguna manera de adaptar eso que me mandaste a este para que pueda redirigirme a http://localhost/estados/trujillo/valera (tomo como ejemplo tomo esa url), se podría hacer o crees que es mejor hacerlo como tu dijiste?
Mil gracias por responder y por explicarme eso.

Última edición por byrong; 18/01/2016 a las 12:35 Razón: Error en la url de trujillo
  #16 (permalink)  
Antiguo 18/01/2016, 13:45
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: Botón submit para selects anidados

Estimado, el método $.ajax() de jQuery que usas, realiza una petición asíncrona, o sea, hace uso de AJAX. Lo único que tienes que revisar es la lógica del algoritmo, entenderla (aunque ya te la expliqué, pero igual) y adaptarla a lo que tienes.

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
  #17 (permalink)  
Antiguo 18/01/2016, 13:52
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Botón submit para selects anidados

Cita:
Iniciado por Alexis88 Ver Mensaje
Estimado, el método $.ajax() de jQuery que usas, realiza una petición asíncrona, o sea, hace uso de AJAX. Lo único que tienes que revisar es la lógica del algoritmo, entenderla (aunque ya te la expliqué, pero igual) y adaptarla a lo que tienes.

Un saludo
¿Es decir que si podría adaptar lo que me diste para redireccionar con lo que te mostré?

Saludos
  #18 (permalink)  
Antiguo 18/01/2016, 14:16
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: Botón submit para selects anidados

Solo tienes que tomar a los tres valores, armar la URL y hacer la redirección. Fíjate en cómo lo hice y adáptalo.

PISTA: Analiza el punto 6.
__________________
«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
  #19 (permalink)  
Antiguo 18/01/2016, 14:42
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Botón submit para selects anidados

Cita:
Iniciado por Alexis88 Ver Mensaje
Solo tienes que tomar a los tres valores, armar la URL y hacer la redirección. Fíjate en cómo lo hice y adáptalo.

PISTA: Analiza el punto 6.
Vale, muchisimas gracias.

Etiquetas: anidados, mysql, select, selects, submit
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 19:20.