Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problemas con select anidado php y mysql

Estas en el tema de problemas con select anidado php y mysql en el foro de PHP en Foros del Web. Buenas noches amigos necesito de su colaboración estoy tratando de crear un selecto dinámico en PHP y Mysql, tengo dos tablas la primera se llama ...
  #1 (permalink)  
Antiguo 21/06/2017, 20:10
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 8 años, 6 meses
Puntos: 0
problemas con select anidado php y mysql

Buenas noches amigos necesito de su colaboración estoy tratando de crear un selecto dinámico en PHP y Mysql, tengo dos tablas la primera se llama tipo_transporte y consta de dos campos que son:
cve_transporte y transporte
1 terrestre
2 maritimo
3 aereo
la 2da tabla se llama tipo_transporte2 y consta de tres campos:
cve_transporte cve_tipo movil
1 1 camion
2 1 carro
3 2 barco
3 avión

EL PRIMER SELECT TRABAJA BIEN PERO NO LOGRO QUE EL SEGUNDO SELECT TOME LA DATA O LA RELACIONES CON EL PRIMERO PARA QUE ME TRAIGA LA DATA ES DECIR Y SELECCIONO MARITIMO EN EL PRIMER SELEC QUE AUTOMATICAMENTE APAREZCA BARCO

Código PHP:
Ver original
  1. <select  name="transporte" class="form-control">
  2.  <?php
  3.                            
  4.     $server = "localhost";
  5.     $usuario = "root";
  6.     $contraseña = "";
  7.     $bd = "hora";
  8.    
  9.           $mysqli = new mysqli('localhost', 'root', '', 'hora');
  10.                                    
  11.           $query = $mysqli -> query ("SELECT * FROM  tipo_transporte");
  12.                                    
  13.           while ($valore = mysqli_fetch_array($query)) {
  14.                                    
  15.  
  16.  
  17.            
  18.    echo     "<option value='".$valore["cve_transporte"]."'>".$valore["transporte"]."</option>";                                    
  19.           }
  20.          
  21.              
  22.         ?>
  23.                                          
  24.                                          </select>
  25.  
  26.  <select  name="transporte2" class="form-control">
  27.  <?php
  28.        
  29.                            
  30.     $server = "localhost";
  31.     $usuario = "root";
  32.     $contraseña = "";
  33.     $bd = "hora";
  34.    
  35.    
  36.    
  37.           $mysqli = new mysqli('localhost', 'root', '', 'hora');
  38.                                    
  39.           $query = $mysqli -> query ("SELECT * FROM  tipo_transporte2 ");
  40.                                    
  41.           while ($valores = mysqli_fetch_array($query)) {
  42.                                    
  43.           echo  "<option value='".$valores["cve_tipo"]."'>".$valores["movil"]."</option>";
  44.                                        
  45.           }
  46.          
  47.              
  48.         ?>
  49.                                          
  50.                                          </select>

por favor si alguien me puede ayudar
de antemano gracias
YC
__________________
ymanol caires z

Última edición por Triby; 22/06/2017 a las 12:27 Razón: Código en highlight
  #2 (permalink)  
Antiguo 22/06/2017, 12:28
Avatar de Turdo  
Fecha de Ingreso: julio-2005
Ubicación: .:Guadalajara:.
Mensajes: 398
Antigüedad: 18 años, 8 meses
Puntos: 23
Respuesta: problemas con select anidado php y mysql

ycaires eso lo tienes que hace con javascript(js) ya que mediante el DOM y los eventos de usuario con js puedes modificar los objetos, en este caso el select.

Código Javascript:
Ver original
  1. var data = new Array();//array multidimencional
  2.     data['maritimo'] = ['barco'];
  3.     data['aereo'] = ['avion'];
  4.     data['terrestre'] = ['camion','automovil'];
  5.     function cambios(){
  6.         var cambiar = document.getElementById('select2');
  7.         var select = document.getElementById('select1');
  8.         var valor = select.options[select.selectedIndex].text;
  9.         var datos = data[valor];
  10.         while (cambiar.options.length) {
  11.             cambiar.options.remove(0);
  12.         }
  13.         if(datos){
  14.             for(i=0;i<datos.length;i++){
  15.                 var opcion = new Option(datos[i], i);
  16.                 cambiar.options.add(opcion);
  17.             }
  18.         }
  19.     }
Código HTML:
Ver original
  1. <select id="select1" name="select1" onchange="cambios()">
  2.     <option value="maritimo">Selecciona una opción</option>
  3.     <option value="maritimo">maritimo</option>
  4.     <option value="aereo">aereo</option>
  5.     <option value="terrestre">terrestre</option>
  6. <select id="select2" name="select2"></select>

Espero te sirva.
__________________
Un buen programa depende de la imaginación.
  #3 (permalink)  
Antiguo 22/06/2017, 12:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problemas con select anidado php y mysql

Eso no se puede directamente con PHP, pero sí con AJAX. Usa el buscador del foro, hay muchos buenos temas acerca de select dependientes, seguro encuentras algo que te sea útil.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 22/06/2017, 20:19
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: problemas con select anidado php y mysql

buenas noches gracias por la solución TURDO esta excelente pero lo que hice fue lo siguiente ya que requerían de el select se recargue automáticamente con nuevos item´s

1.- cree una función y la coloque en el php del formulario

$(function(){

// Lista de trabajos
$.post( 'trabajos.php' ).done( function(respuesta)
{
// variable en el select
$( '#trabajos' ).html( respuesta );
});

// lista de actividades
$('#trabajos').change(function()
{
var el_trabajo = $(this).val();

// Lista de Paises
$.post( 'actividades.php', { trabajo: el_trabajo} ).done( function( respuesta )
{
// variable en el select
$( '#actividades' ).html( respuesta );
});
});

})

2.- cree el archivo trabajos.php y actividades.php

<?php

$conexion = mysqli_connect("localhost","root","","hora");

$query = $conexion->query("SELECT * FROM trabajos");

echo '<option value="0">Seleccione</option>';

while ( $row = $query->fetch_assoc() )
{

echo '<option value="'.$row['id'].'">'.$row['nombre'].'</option>'. "\n";
}

?>

<?php


$conexion = mysqli_connect("localhost","root","","hora");

$el_trabajo = $_POST['trabajo'];

$query = $conexion->query("SELECT * FROM actividades WHERE id_trabajo = $el_trabajo");

echo '<option value="0">Seleccione</option>';

while ( $row = $query->fetch_assoc() )
{
echo '<option value="' . $row['id_actividad']. '">' . $row['nombre'] . '</option>' . "\n";
}

?>

2.- Por último realice el select en el archivo entrar.php del formulario

<form action="insertar.php" method="POST" class="">

<div class="row">
<div class="col-sm-4" style=""> <label >Tipo de Trabajo:</label></div>
<div class="col-sm-4" style=""><label >Actividad:</label></div>
<div class="col-sm-4" style=""><label >País:</label></div>
</div>

<div class="row">
<div class="col-sm-4" style="">

<select name="trabajos" id="trabajos" class="form-control">
<option value="0">Seleccione</option>

</select>

</div>


<div class="col-sm-4" style="">

<select name="actividades" id="actividades" class="form-control">
<option value="0">Seleccione</option>
</select>



</div>

funciona excelente
las tablas son: trabajos con los campos id y nombre y la tabla actividades con los campos id_actividad - Id_trabajo nombre

por cierto lo de los campos y tablas de tipo de transporte era de prueba para no trabajar directamente en el sistema, muchas gracias Turdo y Triby seguro en un momento dado tomo tu script para trabajar menos.
__________________
ymanol caires z

Etiquetas: mysql, select, tabla
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 12:51.