Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/03/2008, 19:40
Kilofafeure
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 18 años
Puntos: 0
Problema con Xajax al recargar formulario

Hola otra vez, siguiendo con mi programa de ayer (gestor de estoc de una tienda de música) ahora estoy intentando que cuando se introduzcan los datos en mi BD lo que me haga el programa es regargar el formulario completamente en blanco, ya que si me introduce bien en la BD el formulario se me queda con los valores ya introducidos, por lo que, si le doy a introducir otra vez aparece el mensaje (correcto) de "Fabricante ya existente". Bien, muestro el código de introducir un fabricante ya que el formulario es mucho menor, también decir que el uploader del archivo no está implementado todavía. Haber si alguien me puede echar un mano ya que no se por qué no se me refrescar el div correspondiente al formulario. Muchas gracias de antemano y un saludo!!

Código PHP:
<?php
//incluímos la clase ajax
require_once("Xajax/xajax_core/xajax.inc.php");

//instanciamos el objeto de la clase xajax
$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->configure('decodeUTF8Input',true);

function 
muestra_formulario(){
   
//creo el xajaxResponse para generar una salida
   
$respuesta2 = new xajaxResponse();
   
   
$codigo_formul '<FORM id="formIMFab">
        <TABLE style="HEIGHT:100%;WIDTH:100%;" BORDER=0>
        <TR ALIGN="center" BOTTOM="middle"><TD>
        <TABLE BORDER=0>
        <tr><td>
        <TR>
        <TD align="left" width="100"><P>Nombre Fabricante:</P></TD>
        <TD align="left" width="150"><INPUT TYPE="text" NAME="NomFab" MAXLENGTH="20" SIZE="20" onChange="javascript:this.value=this.value.toUpperCase();"></P></TD>
        </TR>
        <TD align="left" width="100"><P>Imagen:</P></TD>
        <TD align="left" width="150"><input type="file" id="foto" name="foto"/>
        </TD>
        </TR>
        <TR>
        <TD>
        <input type="button" value="Guardar" onClick="xajax_procesar_formulario(xajax.getFormValues(\'formIMFab\'));"/>
        <INPUT type="reset" value="Limpiar" name="Limpiar" onClick="ponerfoco(0,0)">
        </TD>
        </TR>
    </FORM>
'
;
   
//mostramos en capa capaformulario el texto código HTML del formulario
   
$respuesta2->assign("capaformulario","innerHTML","$codigo_formul");
   return 
$respuesta2;
 }

function 
procesar_formulario($form_entrada){
   
//creo el xajaxResponse para generar una salida
   
$respuesta = new xajaxResponse();

    include_once(
"../BBDD/conexDBTMusik.php");
   
   
$NomFab=$form_entrada["NomFab"];

   
$consulta1="SELECT * FROM fabricante WHERE Fabricante='".$NomFab."'";
   
$ejecuta1=mysql_query($consulta1,$link);
   
$nr=mysql_num_rows($ejecuta1);

   
//validación
   
$error_form "";
   if (
$form_entrada["NomFab"]==""){$error_form="Debes escribir el nombre del Fabricante";}
   elseif(
$nr!=0){$error_form="Fabricante ya existente";}
     
       
//compruebo resultado de la validación
       
if ($error_form != ""){
         
//Hubo un error en el formulario
          //en la capa donde se muestran mensajes, muestro el error
          
$respuesta->assign("mensaje","innerHTML","<span style='color:red;'>$error_form</span>");
        }
     else
     {
             
$cadena="INSERT INTO fabricante(Fabricante)VALUES('".$NomFab."')";
          
$ejecuta2=mysql_query($cadena,$link);
          
//mostramos en capa mensaje el texto que está todo correcto
          
$respuesta->assign("mensaje","innerHTML","<span style='color:blue;'>Todo correcto...Fabricante introducido, rellena los datos del formulario e introduce otro!</span>");
          
xajax_muestra_formulario();
       }
     
//tenemos que devolver la initanciación del objeto xajaxResponse
return $respuesta;
include_once(
"../BBDD/desconexDBTMusik.php");

}

//registramos la función creada anteriormente al objeto xajax
$xajax->registerFunction("muestra_formulario");
$xajax->registerFunction("procesar_formulario");

//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequest();
?>
Código HTML:
<HTML>
<HEAD>
	<TITLE>Introducir Fabricante</TITLE>
	<SCRIPT type="text/javascript" SRC="../Js/Introducir.js"></SCRIPT>
	<link rel="stylesheet" type="text/css" href="../css/contenedor.css" title="contenedor" />
	<link rel="alternate stylesheet" type="text/css" href="../css/menu.css" title="menu" />
    <?php
    	//En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario
    	$xajax->printJavascript("xajax/");
    ?>
</HEAD>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<BODY onLoad="ponerfoco(0,0);">

    <CENTER>
	<div id="mensaje">
	Rellena los datos de este formulario y pulsa "Guardar"
	</div>
    </CENTER>

	<!-- Conectamos con la BBDD -->
	<?php include_once("../BBDD/conexDBTMusik.php"); ?>
	
    <div id="capaformulario">
	<FORM id="formIMFab">

		<TABLE style="HEIGHT:100%;WIDTH:100%;" BORDER=0>
		<TR ALIGN="center" BOTTOM="middle"><TD>
		<TABLE BORDER=0>
		<tr><td>
		<TR>
		<TD align="left" width="100"><P>Nombre Fabricante:</P></TD>
		<TD align="left" width="150"><INPUT TYPE="text" NAME="NomFab" MAXLENGTH="20" SIZE="20" onChange="javascript:this.value=this.value.toUpperCase();"></P></TD>
		</TR>
		<TD align="left" width="100"><P>Imagen:</P></TD>
		<TD align="left" width="150"><input type="file" id="foto" name="foto"/>
		</TD>
		</TR>
		<TR>
		<TD>
		<input type="button" value="Guardar" onClick="xajax_procesar_formulario(xajax.getFormValues('formIMFab'));"/>
        <INPUT type="reset" value="Limpiar" name="Limpiar" onClick="ponerfoco(0,0)">
		</TD>
		</TR>
	</FORM>
	</div>
    <?php include_once("../BBDD/desconexDBTMusik.php"); ?>
</BODY>
</HTML>