Foros del Web » Programando para Internet » PHP »

problema con autocarga de select o listbox

Estas en el tema de problema con autocarga de select o listbox en el foro de PHP en Foros del Web. Buenas. Haber, espero explicarme bien. Tomé un cpdigo y lo modifiqué un tanto. Son de dos select o listbox. Un padre y un hijo. El ...
  #1 (permalink)  
Antiguo 14/12/2009, 13:06
 
Fecha de Ingreso: septiembre-2006
Mensajes: 97
Antigüedad: 17 años, 7 meses
Puntos: 1
problema con autocarga de select o listbox

Buenas. Haber, espero explicarme bien.
Tomé un cpdigo y lo modifiqué un tanto.
Son de dos select o listbox. Un padre y un hijo.
El hijo se carga con el padre...
Cuando selecciono listobox padre, la pagina se carga automáticamente para asi desplegar el select hijo. Y cuando se carga el lisbox padre, yo puedo seleccionar el item de dentro del listbox y no se cambia al valor inicial, sino que queda en el item seleccionado...
Ahora bien, necesito realizar el mismo procedimiento pero con el listbox hijo...
Necesito que cada vez que el listbox hijo sea seleccionado se vuelva a cargar la pagina, esto es para que asi yo guarde el valor del listbox hijo en un texto de tipo hidden....

Ahora mi problema esta en que cuando selecciono un item del listobox hijo vuelve siempre al mismo valor que es el de inicio...

Ejemplo:


Valor 1
Valor 2
Valor 3.

ya sea que seleccione el valor 2 o el valor tres, inmediatamente se cambia al valor 1.

Yo realizo que se cargue automaticamente el listbox hijo, con la misma funcion Onchange que utiliza el listbox padre: onChange='this.form.submit()'

VA CODIGO....

<?php
// datos de conexión a la BD.
$servidor ="localhost"; // host
$usuario ="root";
$clave ="";
$basedatos ="inventario"; // Indicar una Base de datos.





// Conexión a la BD
$conexion = mysql_connect($servidor, $usuario, $clave) or die(mysql_error());
mysql_select_db($basedatos, $conexion) or die(mysql_error());


// Obtener el $id_padre del envío a sí mismo del formulario ...

if (isset($_POST['id_equipo']))
{
$id_equipo=$_POST['id_equipo'];
}


// Inicio Formulario .. PHP_SELF enviamos a sí mismo (a este script).
echo "<form action='".$_SERVER['PHP_SELF']."' method='POST'>\n\n";


// Formar Selec "Padre".
echo "Tipo de Equipo :<select name='id_equipo' onChange='this.form.submit()'>\n";
echo "<option value=''> ------Seleccione------ </option>\n";

$SQLconsulta_equipo="SELECT * FROM equipos";
$consulta_equipo = mysql_query($SQLconsulta_equipo,$conexion) or die(mysql_error());

While ($registro_equipo=mysql_fetch_assoc($consulta_equi po)){
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
// Se selecciona en consecuencia (selected) la opción elegida.
if ($id_equipo == $registro_equipo['id_equipo']){
echo "<option value='".$registro_equipo['id_equipo']."' selected>".$registro_equipo['nom_equipo']."</option>\n";
}
else {
echo "<option value='".$registro_equipo['id_equipo']."'>".$registro_equipo['nom_equipo']."</option>\n";
}
}
echo "</select>\n\n";

mysql_free_result($consulta_equipo); // Liberar memoria usada por consulta.

// Formar Select "Hijo"


echo "Código de Equipo : <select name='id_interno' onChange='this.form.submit()' >\n";

// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opción del select hijo
// se muestra el mensaje de "seleccine un item" (del select padre).
if (!empty($id_equipo))
{

$SQLconsulta_interno="SELECT * FROM cod_internos WHERE id_equipo='$id_equipo'";
$consulta_interno = mysql_query($SQLconsulta_interno,$conexion) or die(mysql_error());
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_interno) != 0)
{
While ($registro_interno=mysql_fetch_assoc($consulta_int erno))
{
echo "<option value='".$registro_interno['id_interno']."'>".$registro_interno['num_equipo']."</option>\n";
}
}
else {
echo "<option value=''> No hay registros para este equipo</option>";
}
} else
{
echo "<option value=''>Código Equipo</option>";
}


mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.

echo "</select>\n\n";
echo "</form>\n";





?>
  #2 (permalink)  
Antiguo 14/12/2009, 13:13
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: problema con autocarga de select o listbox

asi como has hecho para el padre por que no lo hiciste para el hijo ??????

al padre le hiciste esto:

if ($id_equipo == $registro_equipo['id_equipo']){
echo "<option value='".$registro_equipo['id_equipo']."' selected>".$registro_equipo['nom_equipo']."</option>\n";
}
else {
echo "<option value='".$registro_equipo['id_equipo']."'>".$registro_equipo['nom_equipo']."</option>\n";
}

ps al hijo seria:

if ($id_interno== $registro_interno['id_interno']){
echo "<option value='".$registro_interno['id_interno']."' selected>".$registro_interno['num_equipo']."</option>\n";
}
else {
echo "<option value='".$registro_interno['id_interno']."'>".$registro_interno['num_equipo']."</option>\n";
}


Gracias por el karma......

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 14/12/2009, 13:17
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: problema con autocarga de select o listbox

Ahora que si mejoro esa parte...... es mas rapido

al padre:

$selected= ($id_equipo == $registro_equipo['id_equipo']) ? 'selected="selected"' : '';
echo "<option value='".$registro_equipo['id_equipo']."' $selected>".$registro_equipo['nom_equipo']."</option>\n";

al hijo:

$selected= ($id_interno == $registro_interno['id_interno']) ? 'selected="selected"' : '';
echo "<option value='".$registro_interno['id_interno']."' $selected>".$registro_interno['num_equipo']."</option>\n";
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 14/12/2009, 14:21
 
Fecha de Ingreso: septiembre-2006
Mensajes: 97
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: problema con autocarga de select o listbox

masterojitos, es que como soy nuevo en php no comprendo bien como insertar ese codigo en el que yo ya traigo, he intentado pero no doy bien :(
  #5 (permalink)  
Antiguo 14/12/2009, 16:38
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: problema con autocarga de select o listbox

<?php
// datos de conexión a la BD.
$servidor ="localhost"; // host
$usuario ="root";
$clave ="";
$basedatos ="inventario"; // Indicar una Base de datos.





// Conexión a la BD
$conexion = mysql_connect($servidor, $usuario, $clave) or die(mysql_error());
mysql_select_db($basedatos, $conexion) or die(mysql_error());


// Obtener el $id_padre del envío a sí mismo del formulario ...

if (isset($_POST['id_equipo']))
{
$id_equipo=$_POST['id_equipo'];
}


// Inicio Formulario .. PHP_SELF enviamos a sí mismo (a este script).
echo "<form action='".$_SERVER['PHP_SELF']."' method='POST'>\n\n";


// Formar Selec "Padre".
echo "Tipo de Equipo :<select name='id_equipo' onChange='this.form.submit()'>\n";
echo "<option value=''> ------Seleccione------ </option>\n";

$SQLconsulta_equipo="SELECT * FROM equipos";
$consulta_equipo = mysql_query($SQLconsulta_equipo,$conexion) or die(mysql_error());

While ($registro_equipo=mysql_fetch_assoc($consulta_equi po)){
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
// Se selecciona en consecuencia (selected) la opción elegida.
$selected= ($id_equipo == $registro_equipo['id_equipo']) ? 'selected="selected"' : '';
echo "<option value='".$registro_equipo['id_equipo']."' $selected>".$registro_equipo['nom_equipo']."</option>\n";
}
echo "</select>\n\n";

mysql_free_result($consulta_equipo); // Liberar memoria usada por consulta.

// Formar Select "Hijo"


echo "Código de Equipo : <select name='id_interno' onChange='this.form.submit()' >\n";

// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opción del select hijo
// se muestra el mensaje de "seleccine un item" (del select padre).
if (!empty($id_equipo))
{

$SQLconsulta_interno="SELECT * FROM cod_internos WHERE id_equipo='$id_equipo'";
$consulta_interno = mysql_query($SQLconsulta_interno,$conexion) or die(mysql_error());
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_interno) != 0)
{
While ($registro_interno=mysql_fetch_assoc($consulta_int erno))
{
$selected= ($id_interno == $registro_interno['id_interno']) ? 'selected="selected"' : '';
echo "<option value='".$registro_interno['id_interno']."' $selected>".$registro_interno['num_equipo']."</option>\n";
}
}
else {
echo "<option value=''> No hay registros para este equipo</option>";
}
} else
{
echo "<option value=''>Código Equipo</option>";
}


mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.

echo "</select>\n\n";
echo "</form>\n";





?>
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
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 10:11.