Que tal Internautas de foros del web, necesito su ayuda.
Tengo un script en PHP que llama a una función para mostrar selects anidados, la primera llamada a una función de PHP desde HTM me sale sin problema, pero en cuanto realizo la segunda llamada ya no produce los resultados esperados. Me podrían ayudar por favor, no se si tenga que hacer algo desde HTML para llamar a dos funciones PHP o qué.
Les envió el código, de hecho la parte que tengo con un comentario es el cuerpo de la segunda llamada
<?php
require('/usr/share/php/xajax/xajax.inc.php');
$xajax = new xajax();
$xajax->setCharEncoding("ISO-8859-1");
//$xajax->decodeUTF8InputOn();
//$xajax->configure('decodeUTF8Input',true);
//Select combinado para grado y Materia
function grado()
{
include 'conExalin.php';
conectar();
$consultaGdo = mysql_query ("SELECT gdoCve,gdoName FROM GRADO");//puede ser select *
desconectar();
?>
<select name='Grado' id='grado' onChange="xajax_generar_select(document.formGrado. grado.options[document.formGrado.grado.selectedIndex].value)">";
<option value='0'>Elige Grado</option>
<?php
while($regdo=mysql_fetch_row($consultaGdo))
{ echo "<option value=' ".$regdo[0]." '>".$regdo[1]."</option>"; }
?> </select> <?
$Gdo = $_POST['Grado'];//Grado ->capturaReactivo.php
}
function select_combinado($cod_gdo)
{
include 'conExalin.php';
conectar();
$consulta_mat=mysql_query("SELECT matCve,matName FROM MATERIA WHERE grado='$cod_gdo'");
desconectar();
$nuevo_select = "<select name='Materia'>";
$nuevo_select .= '<option value="'. 0 .'">'.Selecciona_Materia.'</option>';
while($registro_mat=mysql_fetch_row($consulta_mat) ){
$nuevo_select .= '<option value="' . $registro_mat[0] . '">' . $registro_mat[1] . '</option>';
}
$nuevo_select .= "</select>";
$mat = $_POST['Materia'];//Materia ->capturaReactivo.php
return $nuevo_select;
}
function generar_select($cod_gdo){
$respuesta = new xajaxResponse();
if ($cod_gdo==0){
$nuevo_select = '<select name="Materia">
<option value=0>Elige* Materia</option>
</select>
';
}else{
$nuevo_select = select_combinado($cod_gdo);
}
$respuesta->assign("seleccombinado","innerHTML",$nuevo_select );
return $respuesta;
}
$xajax->registerFunction("generar_select");
$xajax->processRequest();
?>
<!--Select combinado para Eje, Tema y Subtema-->
<?php/*
//require('/usr/share/php/xajax/xajax.inc.php');
//$xajax = new xajax();
//$xajax->setCharEncoding("ISO-8859-1");
function eje()
{
include 'conExalin.php';
conectar();
$consultaEje = mysql_query ("SELECT EjeCve, EjeDescripcion FROM EJE");//puede ser select *
desconectar();
?>
<select name='Eje' id='Eje' onChange="xajax_selecEje(document.formGrado.Eje.op tions[document.formGrado.Eje.selectedIndex].value)">";
<option value='0'>Elige un Eje</option>
<?
while($regEje=mysql_fetch_row($consultaEje))
{ echo "<option value=' ".$regEje[0]." '>".$regEje[1]."</option>"; }
?> </select><?
$Ej = $_POST['Eje'];//Eje ->capturaReactivo.php
}
function selectCombinados($cveEje)
{
include 'conExalin.php';
conectar();
$consulta_tema=mysql_query("SELECT temaCve,temaDesc FROM TEMA WHERE eje='$cveEje'");
desconectar();
$nuevo_selectema = "<select name='Tema'>";
$nuevo_selectema .= '<option value="'. 0 .'">'.Selecciona_Tema.'</option>';
while($regTema=mysql_fetch_row($consulta_tema)){
$nuevo_selectema .= '<option value="' . $regTema[0] . '">' . $regTema[1] . '</option>';
}
$nuevo_selectema .= "</select>";
$Tma = $_POST['Tema'];//Tema ->capturaReactivo.php
return $nuevo_selectema;
}
function selecEje($cod_eje)
{
$respdos = new xajaxResponse();
if ($cod_eje==0){
$nuevo_selectema = '<select name="Tema">
<option value=0>Elige* un Tema</option>
</select>
';
}else{
$nuevo_selectema = selectCombinados($cod_eje);
}
$respdos->assign("ejecombinado","innerHTML",$nuevo_selectem a);
return $respdos;
}
$xajax->registerFunction("Selecteje");
$xajax->processRequest();
*/?>
<html>
<head>
<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">-->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1">
<title>Altas Materia</title>
<?php
//En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario
$xajax->printJavascript("..//");
?>
</head>
<body bgcolor="#FFFFFF" text="BLACK">
<center>
<form name="formGrado" action="capturaReactivo.php" method="post">
<table border="1" cellspacing="10">
<tr>
<td align="right">
<font size=4>Grado:</font><br>
<font size=4>Materia:</font><br>
<font size=4>Bloque:</font><br>
<font size=4>Eje:</font><br>
<font size=4>Tema:</font><br>
<font size=4>Subtema:</font><br>
<font size=4>Bimestre:</font><br>
<font size=4>Nivel:</font><br>
<font size=4>Tipo:</font><br>
</td>
<td>
<?php grado(); ?> //PRIMERA LLAMADA NO HAY PROBLEMA
<div id="seleccombinado">
<select name="Materia">
<option value=0>Elegir miMateria</option>
</select>
</div>
<SELECT name="Bloque">
<?php
echo "<OPTION VALUE=''>Elija un Bloque</OPTION>";
conectar();
$resultado = mysql_query("SELECT * FROM BLOQUE");
desconectar();
while ($row = mysql_fetch_array($resultado, MYSQL_ASSOC)) {//asociativo tomamos indice y valor
echo "<OPTION VALUE=".$row['bloqCve'].">".$row['bloqNombre']."</OPTION>";
}
$Blq = $_POST['Bloque'];
?>
</SELECT><br>
<?php eje(); ?> /*SEGUNDA LLAMADA SI COLOCAN CON UN COMENTARIO APARECEN OTROS SELECTS, SI QUITAN EL COMENTARIO DESAPARECEN LOS SECLECTS*/
<div id="ejecombinado">
<select name="Tema">
<option value=0>Elegir miTema</option>
</select>
</div>
<SELECT name="Bimestre">
<?php
echo "<OPTION VALUE=''>Elija un Bimestre</OPTION>";
conectar();
$resultado = mysql_query("SELECT * FROM BIMESTRE");
desconectar();
while ($row = mysql_fetch_array($resultado, MYSQL_ASSOC)) {//asociativo tomamos indice y valor
echo "<OPTION VALUE=".$row['bimCve'].">".$row['bimName']."</OPTION>";
}
$Bim = $_POST['Bimestre'];
?>
</SELECT><br>
</td>
</table>
</form><!--FIN form action="capturaReactivo.php"-->
</center>
</body>
</html>