24/10/2008, 10:45
|
| | Fecha de Ingreso: agosto-2006
Mensajes: 18
Antigüedad: 18 años, 3 meses Puntos: 0 | |
Ayuda con listas dependientes usando XAJAX Saludos a la comunidad, recientemente he conocido Xajax y comenze a realizar unos ejemplos para irme adaptando al mismo, mas sin embargo he tenido ciertos errores que no he logrado corregir y espero me ayuden.
Tengo tres listas dinamicas, que muestran informacion sobre las BD, tablas y campos de la pc local. en donde la 1era se carga inicialmente, la segunda depende del valor seleccionado de la primera y la tercera del valor seleccionado de la segunda. ahora bien no consigo cargar los valores de la tercera lista . Abajo el codigo que tengo:
<?php
require ('./xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();
function procesar_campos($indice, $form_entrada)
{
if ($indice!=0)
{
/*$bd="127.0.0.1";
$puerto="3306";
$usuario="root";
$passw="";
$conex = mysql_connect($bd.":".$puerto, $usuario, $passw);
mysql_select_db ($form_entrada["nombre"],$conex);
$res = mysql_query('select * from '.$form_entrada["tablas"], $conex);
$nuevo_select = '<td>';
echo '<select name="campos" id="campos">';
for ($i=0; $i<mysql_num_fields($res); $i++){
echo '<option>'.$row->Tablas;
echo mysql_field_name($res, $i) . "\n";}
mysql_free_result($res);
$nuevo_select .= '</td></tr></table></form></div>';*/
$salida = "Datos seleccionados:<p>";
$salida .= "Tabla: ". $form_entrada["tablas"];
$salida .= "<br> id: ". $indice;
}
else
{ //$nuevo_select = '</tr></table></form></div>';
$salida = "Debe seleccionar la tabla" ;
}
$respuesta = new xajaxResponse();
$respuesta->assign("seleccampo", "innerHTML", $salida);
return $respuesta;
}
function crear_form($form)
{
$bd="127.0.0.1";
$puerto="3306";
$usuario="root";
$passw="";
$db=$form["nombre"];
$link = mysql_connect($bd.":".$puerto, $usuario, $passw);
$db_list = mysql_list_dbs($link);
$cuerpo = '<div id="mensaje">';
$cuerpo .= '<form name="formulario" id="formulario">';
$cuerpo .= '<table>';
$cuerpo .= '<tr>';
$cuerpo .= '<td>Base de datos</td>';
$cuerpo .= '<td>Tablas</td>';
$cuerpo .= '<td>Campos</td>';
$cuerpo .= '</tr>';
$cuerpo .= '<tr><td>';
$cuerpo .= '<select name="nombre" id="nombre" onchange="xajax_procesar_formulario(document.formu lario.nombre.selectedIndex, xajax.getFormValues(\'formulario\'))">';
$cuerpo .= '<option value=0 selected>Seleccione una BD</option>';
while ($row = mysql_fetch_object($db_list)) {
if ($db==$row->Database) {$cuerpo .= '<option value='.$row->Database.' selected>'.$row-> Database; }
else {$cuerpo .= '<option value='.$row->Database.'>'.$row->Database; }
}
mysql_free_result($db_list);
$cuerpo .= '</td>';
return $cuerpo;
}
function procesar_formulario($indice, $form_entrada)
{
if ($indice!=0)
{
$bd="127.0.0.1";
$puerto="3306";
$usuario="root";
$passw="";
mysql_connect($bd.":".$puerto, $usuario, $passw);
$result = mysql_list_tables($form_entrada["nombre"]);
$nuevo_select = crear_form($form_entrada);
$nuevo_select .= '<td>';
$nuevo_select .= '<select name="tablas" id="tablas" onchange="xajax_procesar_campos(document.formulari o.tablas.selectedIndex, xajax.getFormValues(\'formulario\'))">';
$nuevo_select .= '<option value=0 selected>Seleccione una Tabla</option>';
while ($row = mysql_fetch_row($result)) {
$nuevo_select .= '<option '.$row->Tablas.'>'.$row->Tablas;
$nuevo_select .= "$row[0]\n";
}
mysql_free_result($result);
$nuevo_select .= '</td><td><div id="seleccampo"> </div></td></tr></table></form></div>';
}
else
{ $nuevo_select = crear_form($form_entrada);
$nuevo_select .= '</tr></table></form></div>';
}
$respuesta = new xajaxResponse();
$respuesta->assign("mensaje", "innerHTML", $nuevo_select);
return $respuesta;
}
$xajax->registerFunction("procesar_formulario");
$xajax->registerFunction("procesar_campos");
$xajax->processRequest();
?>
<html>
<head>
<title>Lista dinámica con xajax</title>
<?php $xajax->printJavascript('./xajax/'); ?>
</head>
<body>
<div id="mensaje">
<form name="formulario" id="formulario">
<table>
<tr>
<td>Base de datos</td>
<td>Tablas</td>
<td>Campos</td>
</tr>
<?php
$bd="127.0.0.1";
$puerto="3306";
$usuario="root";
$passw="";
$i=1;
$link = mysql_connect($bd.":".$puerto, $usuario, $passw);
$db_list = mysql_list_dbs($link);
echo '<tr><td>';?>
<select name="nombre" id="nombre" onchange="xajax_procesar_formulario(document.formu lario.nombre.selectedIndex, xajax.getFormValues('formulario'))">
<?php echo '<option value=0 selected>Seleccione una BD</option>';
while ($row = mysql_fetch_object($db_list)) {
if ($sel1==$row->Database) {echo '<option value='.$row->Database.' selected>'.$row->Database; }
else {echo '<option value='.$row->Database.'>'.$row->Database; }
}
mysql_free_result($db_list);
echo '</td>';
echo '<td><div id="selectabla"> </div></td>';
echo '<td><div id="seleccampo"> </div></td></tr>';
?>
</table>
</form>
</div>
</body>
</html>
Se que no me trae el valor seleccionado de la 2da lista, pero no logro como traerlo, si alguien podria indicarme como hacerlo se los agradeceria |