[Php-avanzado] Problema con llamada a función
Lucas Nastri
dex87.mdq en gmail.com
Jue Abr 22 00:19:47 ART 2010
Hola gente, cómo va?. Espero que puedan ayudarme con ésto. Paso a
comentar mas o menos de qué se trata mi problema. Tengo una página que
tiene 3 divs. Un div grande donde se encuentran otros 2 más chicos. El
div de la derecha muestra un menu (por medio de links), mientras que
el div de la izquierda muestra el contenido de cada opción (link).
Para actualizar el contenido del div de la derecha utilizo AJAX.
Voy a dejar el código para que se entienda mejor
<body>
<div id="tablon">
<form method="POST" action="?">
<div id="contenido">
<div id=izq>
<?php generaTablaEmpUsr(); //Ésta función me
genera el menu ?>
</div>
<div id=der>
<?php
/*EN ÉSTA CAPA CARGO EL CONTENIDO SEGÚN
LA COPCIÓN QUE SEA
ELEGIDA EN EL MENU(EN LA CAPA IZQ)*/
?>
</div>
</div>
</form>
</div>
</body>
Entonces la función a la que llamo en la capa izquierda me muestra el
menu de opciones con los links y lo que hago es cargar el contenido de
la opción (link) en la capa derecha. Obviamente tengo que llamar a una
función que contiene lo que va a mostrar la capa derecha. Por ejemplo
la función alta.
function manejadorAlta(){
if(!isset($_POST["alta"])){
generaFormAlta();
}else{
$ape = $_POST["ape"];
$nom = $_POST["nom"];
$dni = $_POST["dni"];
$dia = $_POST["dias"];
$mes = $_POST["meses"];
$ano = $_POST["anos"];
$fNac = armaFNac($dia, $mes, $ano);
$nick = $_POST["nick"];
$pass = $_POST["pass"];
$pass2 = $_POST["pass2"];
$id_cat = $_POST["tipoUsers"];
$todoOk = validaTodo($nom, $ape, $dni, $dias, $meses,
$anos, $nick, $pass, $pass2, $id_cat);
if($todoOk == true){
altaUser($nick, $pass, $id_cat);
$id_user = getIdUsr($nick, $pass); //RECUPERO EL ID DEL USUARIO
altaEmple($ape, $nom, $dni, $fNac, $id_user);
}
}
}
Ésta función la llamo cuando hago clic en un link del menu de
opciones. La primera vez que llame a la función el if se va a evaluar
como verdadero, ya que la variable $_POST["alta"] todavía no fué
seteada, entonces llama a la función "generaFormAlta()", que me genera
el formulario de alta. Cuando termina ésta función que genera el
formulario del alta el if también termina y la función
"manejadorAlta()" que es a la que llamo por el link también.
El tema, y es el problema que tengo, es que yo necesito que ésta
función se llame dos veces ya que necesito crear el form (que eso lo
hace cuando entra al if) y luego llamarla de nuevo para ejecutar el
código que está en el else que es el código que en realidad hace el
alta.
Yo al form le puse en el action un signo "?", para que las variables
se pasen a éste mismo archivo, para llamarlo otra vez. Pero el tema es
que no se como ejecutar de nuevo la función "manejadorAlta()" para que
ejecute el código del else .
Si no usara AJAX sería fácil, porque recargaría la página entera,
entonces siempre llamaría a la función en el div de la derecha. El
tema es ese, que no se como invocar por segunda vez la función para
que haga el alta.
Si alguien puede ayudarme se lo agradecería porque me quedé acá y no
sé como seguir.
Muchas gracias por la ayuda.
Lucas.
Más información sobre la lista de distribución Php-avanzado