Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/10/2007, 08:41
Sasha_ivo
 
Fecha de Ingreso: mayo-2007
Mensajes: 5
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Problemas con los select combinados

Ok dale son dos paginas que una llama al select.php pero debes trabajar con la libreria de xajax para que funcione y yo trabajo con Postgres que es casi idem a Sql.

<?
require('Select.php');
?>
<html>
<head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title>Registro de Investigadores - Datos Generales</title>
<?
//En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario
$xajax->printJavascript("xajax/");
?>
//cUERPO
<td colspan="4" height="40"><acronym><b>Especialidad académica</b></acronym></td>
</tr>
<tr height="30">
<td width="60">Area: </td>
<td width="220">
<?
// Llamar función Consulta_BD
$resultado=Consulta_BD('SELECT * FROM "area"');
print("<select name=id_area onchange=xajax_generar_select(id_area.value)>");
print("<option value='0'>Elegir area</option>");
while ($Row = pg_fetch_array($resultado, null, PGSQL_ASSOC))
{print("<option value='$Row[id_area]'> $Row[area]");}
?>
</option>
</select>
</td>
<td width="60">Disciplina: </td>
<td id="seleccombinado" >
<select name="id_disciplina"> <option value=0>Elegir disciplina</option>
</select>
</td>
</tr>
</table>
</td>



esTA ES LA PARTE DEL SELECT Y FALTA EL ARCHIVO SELECT.PHP QUE ES ESTE:
<?
//incluímos la clase ajax
require ('xajax/xajax.inc.php');
require('funciones.php');
// Llamar función Conecta_BD
$Conexion=Conecta_BD();
//instanciamos el objeto de la clase xajax
$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();

function select_combinado($id_area){
//función para crear el select combinado
//debe extraer las opciones de un select a partir de un parámetro
$resultado1=Consulta_BD("SELECT * FROM disciplina WHERE id_area='$id_area'");
//creo las distintas opciones del select
$nuevo_select ="<select name='id_disciplina'>";
while ($Row = pg_fetch_array($resultado1, null, PGSQL_ASSOC))
{$nuevo_select .= "<option value=" . $Row[id_discipli] . ">" . $Row[discipli] . "</option>";}
$nuevo_select .= "</select>";
return $nuevo_select;
}
function generar_select($id_area){
//instanciamos el objeto para generar la respuesta con ajax
$respuesta = new xajaxResponse('ISO-8859-1');
if ($id_area==0){
//escribimos el select de disciplinas vacío
$nuevo_select = "<select name='id_disciplina'><option value=0>Elegir disciplina</option></select>";
}else{
$nuevo_select = select_combinado($id_area);
}
//escribimos en la capa con id="seleccombinado"
$respuesta->addAssign("seleccombinado","innerHTML",$nuevo_sel ect);
//tenemos que devolver la instanciación del objeto xajaxResponse
return $respuesta;
}
//asociamos la función creada anteriormente al objeto xajax
$xajax->registerFunction("generar_select");
//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequests();
?>
Este archivo es el que genera la actiualizacion de los select, espero tu ayuda.Gracias