Foros del Web » Programando para Internet » PHP »

Select dependientes, funciona pero pequeño error

Estas en el tema de Select dependientes, funciona pero pequeño error en el foro de PHP en Foros del Web. Hola a todos, tengo un problema tonto de los míos pero es que hoy estoy negado y por mas que pruebo no se solucionarlo!!!!! Tengo ...
  #1 (permalink)  
Antiguo 17/09/2011, 15:12
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años, 1 mes
Puntos: 17
Select dependientes, funciona pero pequeño error

Hola a todos, tengo un problema tonto de los míos pero es que hoy estoy negado y por mas que pruebo no se solucionarlo!!!!!

Tengo dos select, al seleccionar una opcion del primero, me hace una consulta en la BD y me muestra las opciones del "Select 2", bien, pues eso me funciona bien pero me muestra siempre un error debajo de los select:

Cita:
Notice: Undefined index: id in C:\...... on line 39
Y la línea 39 es:
Cita:
$consulta = "SELECT * from pruebas WHERE id_usuario= '$_GET[id]'";
Este es el código completo: ARCHIVO form.php

Código PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Selects dependientes con jQuery.</title>
        <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
        <script language="JavaScript" type="text/JavaScript">
            $(document).ready(function(){
                $("#select1").change(function(event){
                    var id = $("#select1").find(':selected').val();
                    $("#select2").load('form.php?id='+id);
                });
            });
        </script>
      
    </head>

    <body>
        <form>
            <select name="select1" id="select1">
                <option value="">Selecciona</option>
                <option value="1">Opcion 1</option>
                <option value="2">Opcion 2</option>
                
            </select>
            <select name="select2" id="select2">

            </select>
        </form>
    </body>
</html>
  <?php

include('conectar.php');

$conn conectar();

$consulta "SELECT * from pruebas WHERE id_usuario = '$_GET[id]'";
$query mysql_query($consulta,$conn); 

?>
Este código lo tenía separado, es decir, tenia todo lo que es el 'php' en otro archivo, y en el script que tengo de javascript al principio del archivo en vez de hacer referencia a form.php hacia referencia al archivo del que os hablo... no se si al intentar hacerlo todo en la misma página lo he fastidiado, por separado funciona sin pegas.


¿Alguien se le ocurre que puede estar pasando?
  #2 (permalink)  
Antiguo 17/09/2011, 15:52
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Select dependientes, funciona pero pequeño error

Por que no hacer esto en el codigo que tienes de jquery:
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.  // Creamos el evento change para detectar el elemento elegido
  3.  $("#select1").change(function () {
  4.      $("#select1 option:selected").each(function () {
  5.                          // capturamos el valor elegido
  6.              elegido=$(this).val();
  7.                          // Llamamos al archivo combo1.php
  8.              $.post("get_data.php",
  9.             { id: elegido },
  10.             function(data){
  11.                          // Asignamos las nuevas opciones para el combo2
  12.              $("#select2").html(data);
  13.                          // y si tienes otro combo reseteamos el combo3
  14.             // $("#combo3").html("");
  15.          });        
  16.         });
  17.   })

y en el php lo captura como un post:
Código PHP:
Ver original
  1. $id = $_POST['elegido'];
  2. // hacemos la consulta
  3. $consulta = "SELECT * from pruebas WHERE id_usuario = '$id'";
  4. $query = mysql_query($consulta,$conn);
__________________
Visita a Publiventa donde compras y vendes de todo
  #3 (permalink)  
Antiguo 17/09/2011, 16:12
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: Select dependientes, funciona pero pequeño error

Hola gustavopino, muchas gracias por contestar, he ajustado el código que me has aportado pero me vuelve a salir el error Undefine Index!!! Tengo que decir que lo he puesto todo en un mismo archivo otra vez (necesito que sea en uno para simplificar el proyecto, si es que se puede, estoy empezando a plantearme hacerlo por separado como lo tenia antes....)
  #4 (permalink)  
Antiguo 17/09/2011, 16:22
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Select dependientes, funciona pero pequeño error

creo es por que no esta defininida la varible $id.

Código PHP:
$id $_POST['elegido']; 
haber prueba asi :D
Código PHP:
if(isset($_POST['elegido'])){
// hacemos la consulta
$consulta "SELECT * from pruebas WHERE id_usuario = '".$_POST['elegido']."'";
$query mysql_query($consulta,$conn);


y en jquery esto
Código Javascript:
Ver original
  1. $("#select2").load('form.php',{elegido:id});

Última edición por experimenta; 17/09/2011 a las 16:29 Razón: Un error mio !! xD
  #5 (permalink)  
Antiguo 17/09/2011, 16:47
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: Select dependientes, funciona pero pequeño error

Puf madremía que torpeza tengo por dios, muchas gracias por contestar experimenta a ver, lo he puesto como tu dices, pero cambiando POST por GET, ya que lo que intento es ponerlo todo en un mismo archivo, el resultado es este, y no me rellena el segundo select, :(

Código HTML:
 <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Selects dependientes con jQuery.</title>
        <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
        <script language="JavaScript" type="text/JavaScript">
           $(document).ready(function(){
*// Creamos el evento change para detectar el elemento elegido
*$("#select1").change(function () {
* * *$("#select1 option:selected").each(function () {
* * * * * * * * * * * * *// capturamos el valor elegido
* * * * * * *elegido=$(this).val();
* * * * * * * * * * * * *// Llamamos al archivo combo1.php
* * * * * * *$.post("form.php", 
* * * * * * { id: elegido }, 
* * * * * * function(data){
* * * * * * * * * * * * *// Asignamos las nuevas opciones para el combo2
* * * * * * $("#select2").load('form.php',{elegido:id});
* * * * * * * * * * * * *// y si tienes otro combo reseteamos el combo3
* * * * * * // $("#combo3").html("");
* * * * *}); * * * * 
* * * * });
* })
		   });
        </script>
    </head>

    <body>
        <form>
            <select name="select1" id="select1">
                <option value="">Selecciona</option>
                <option value="1">Opcion 1</option>
                <option value="2">Opcion 2</option>
                
            </select>
            <select name="select2" id="select2">

            </select>
        </form>
     </body>


[PHP]

<?php

include('conectar.php');

$conn = conectar();

if(isset($_GET['elegido'])){
// hacemos la consulta
$consulta = "SELECT * from pruebas WHERE id_usuario = '".$_GET['elegido']."'";
$query = mysql_query($consulta,$conn) or die (mysql_error());

}  

while ($fila = mysql_fetch_array($query)) {
	
    echo '<option value="'.$fila['id'].'">'.$fila['nombre'].'</option>';
};

?>

[/PHP]
  #6 (permalink)  
Antiguo 17/09/2011, 17:29
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Select dependientes, funciona pero pequeño error

Ujum Te refieres a algo como esto!

Código HTML:
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Selects dependientes con jQuery.</title>
       <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
        <script language="JavaScript" type="text/JavaScript">
 $(function(){
	 
	$("#select1").change(function(){
	elegido = $(this).val();
	$("#select2").load('form.php #nuevoOption',{elegido:elegido});
	});
});
        </script>
    </head>

    <body>
        <form>
            <select name="select1" id="select1">
                <option value="">Selecciona</option>
                <option value="1">Opcion 1</option>
                <option value="2">Opcion 2</option>
                
            </select>
            <select name="select2" id="select2">
				
            </select>
        </form>
     </body>

<?php

//include('conectar.php');

//$conn = conectar();

if(isset($_POST['elegido'])){
// hacemos la consulta
//$consulta = "SELECT * from pruebas WHERE id_usuario = '".$_POST['elegido']."'";
//$query = mysql_query($consulta,$conn) or die (mysql_error());

//}  

//while ($fila = mysql_fetch_array($query)) {
	
 //   echo '<option value="'.$fila['id'].'">'.$fila['nombre'].'</option>';
 
 echo '<option value="" id="nuevoOption">nueva opciona</option>
       <option value="1" id="nuevoOption">Opcion s1</option>
       <option value="2" id="nuevoOption">Opcion s2</option>';

}

?> 
Solo es un ejemplo :D...
  #7 (permalink)  
Antiguo 17/09/2011, 17:57
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: Select dependientes, funciona pero pequeño error

SI!!!!! jejejejejejej experimenta de verdad que muchas gracias por las molestias, gracias a gente como tu poco a poco voy aprendiendo poco a poco a hacer las cosas bien :)

He estado probando el código, pero no se como hacer para que me coja de la base de datos, de todas formas sin base de datos tambien tengo una duda, en el 'echo' que le haces a las opciones del segundo select... no tengo ni idea de como decirle que :

muestrame todos las opciones que hay en el select 2, que pertenezcan a la opcion 1 del select 1.

No me entra esto en la cabeza..
  #8 (permalink)  
Antiguo 17/09/2011, 18:00
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Select dependientes, funciona pero pequeño error

Lo que pasa es que para hacer el query tendrias que recargar la pagina para que llene el select2 lo que tienes que hacer es:
1.- separar el php de la pagina para poder procesar el escrip.
2.- recuerda que el jquery necesita interactual con el servidor.

Por favor pon el php en otra pagina para que veas que si funciona.
__________________
Visita a Publiventa donde compras y vendes de todo

Última edición por gustavopino; 17/09/2011 a las 18:09
  #9 (permalink)  
Antiguo 17/09/2011, 18:11
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: Select dependientes, funciona pero pequeño error

Hola, mira, si pongo el php en otro archivo me funciona perfecto (abajo pongo el codigo), el problema es que tengo una pagina con un formulario, en ese formulario se incluyen los select dependientes que estoy intentando hacer, entonces, si lo pongo por separado como lo tengo, y como me funciona.... no se como hacer para que al enviar el formulario, se envie también los datos recogidos de los select dependientes....

Esto es por separado y como me funciona:


Formulario: FORM.php

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Selects dependientes con jQuery.</title>
        <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
        <script language="JavaScript" type="text/JavaScript">
            $(document).ready(function(){
                $("#select1").change(function(event){
                    var id = $("#select1").find(':selected').val();
                    $("#select2").load('genera-select.php?id='+id);
                });
            });
        </script>
    </head>

    <body>
        <form action="form.php"  method="get">

       ....... varios input tex, etc...


            <select name="select1" id="select1">
                <option value="">Selecciona</option>
                <option value="1">Opcion 1</option>
                <option value="2">Opcion 2</option>
                <option value="3">Opcion 3</option>
                <option value="4">Opcion 4</option>
            </select>
            <select name="select2" id="select2">

            </select>

<input name="enviar" type="submit"  value="enviar"/>
        </form>
    </body>
</html> 
El php:

Código PHP:

<?php
require ('conectar.php'); 

$conn conectar();

$consulta "SELECT * from pruebas WHERE id_usuario = ".$_GET['id'];
$resultado=mysql_query($consulta,$conn) or die (mysql_error());

while (
$fila mysql_fetch_array($resultado)) {
    echo 
'<option value="'.$fila['nombre'].'">'.$fila['nombre'].'</option>';
};

?>
Asi me muestra el segundo select perfecto , pero no se como recoger el valor de los select y enviarlos con los demas datos...
  #10 (permalink)  
Antiguo 17/09/2011, 18:17
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Select dependientes, funciona pero pequeño error

cuando envias el formulario envias los dos select al mismo tiempo pruebalo en otro archovo.php para que veas.

ah, una cosa mas te recomiendo que envies todos los datos por post ya que si lo envias por get todo los datos se visualizan por la url.

espero tu respuesta.
__________________
Visita a Publiventa donde compras y vendes de todo
  #11 (permalink)  
Antiguo 17/09/2011, 18:18
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Select dependientes, funciona pero pequeño error

Todo es posible amigo
haber agrega a mi msn ahi te ayudo mas rapido,
como me explicas mejor lo que tratas de hacer y entiendo mejor .

te envio mi msn por privado Oks.
  #12 (permalink)  
Antiguo 17/09/2011, 18:30
 
Fecha de Ingreso: marzo-2011
Mensajes: 88
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: Select dependientes, funciona pero pequeño error

Madremia anda que la que he liado aquí en un momento, de verdad que muchisimas gracias a los dos, vereis gracias a lo que me ha dicho gustavopino lo he separado, lo he puesto con POST y ya lo he conseguido hacer !! YA ERA HORA!!!!!!


El FORM.PHP

Código HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Selects dependientes con jQuery.</title>
        <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
        <script language="JavaScript" type="text/JavaScript">
            $(document).ready(function(){
                $("#select1").change(function(event){
                    var id = $("#select1").find(':selected').val();
                    $("#select2").load('genera-select.php?id='+id);
                });
            });
        </script>
    </head>

    <body>
        <form action="form.php" method="post">
            <select name="select1" id="select1">
                <option value="">Selecciona</option>
                <option value="1">Opcion 1</option>
                <option value="2">Opcion 2</option>
                <option value="3">Opcion 3</option>
                <option value="4">Opcion 4</option>
            </select>
            <select name="select2" id="select2">

            </select>
            <input name="enviar" type="submit"  value="enviar"/>
        </form>
        
        <?php
		
		if(isset($_POST['enviar'])){
		
		 echo $_POST['select1'];  echo $_POST['select2']; }?>
    </body>
</html> 
Y el archivo php, (genera-select.php):

Código PHP:

<?php
require ('conectar.php'); 

$conn conectar();

$consulta "SELECT * from pruebas WHERE id_usuario = ".$_GET['id'];
$resultado=mysql_query($consulta,$conn) or die (mysql_error());

while (
$fila mysql_fetch_array($resultado)) {
    echo 
'<option value="'.$fila['id'].'">'.$fila['nombre'].'</option>';
};

?>
Tanto lio de querer ponerlo todo en un archivo me ha complicado 3 horas las existencia!! Está claro que cuando una cosa no sale hay que buscar alternativas y no quedarse estancado porque si no....

De verdad que muchisimas gracias a los dos, si pudiera os daba todo el karma del mundo!! un saludo muy grande!!

Etiquetas: dependientes, html, mysql, select, usuarios
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 15:08.