buenas ..
tengo un problema en esta pagina .. la cual intento crear un alta con xajax..
al enviar el formulario me recarga la pagina.. y no puedo ver el resultado..
todo el codigo php anda.. es decir m realiza las validaciones y me da de alta y eso..
lo que hace mal es que recarga la pagina una vez apretado el boton enviar..
estuve mirando y repasando el codigo bastante tiempo.. y nada
saludos y gracias de ante mano
Código PHP:
<?php
include('seguridad.php');
include('conexion.php');
include('funciones/funcion.php');
//incluímos la clase ajax
require ('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 select_combinado($id_localidad){
$data=mysql_query("select * from establecimiento where idlocalidad='$id_localidad'");
$nuevo_select = "<select style='width:160px' id='idestablecimiento' name='idestablecimiento'>";
while($esta=mysql_fetch_array($data))
{
$nuevo_select .= "<option value=".$esta[idestablecimiento].">".$esta[idestablecimiento]."-".$esta[razonsocial]."</option>";
}
$nuevo_select .= "</select>";
return $nuevo_select;
}
function generar_select($cod_localidad){
$respuesta = new xajaxResponse();
$respuesta->setCharacterEncoding('ISO-8859-1');
if ($cod_localidad==999){
$nuevo_select = '<select id="idestablecimiento" name="idestablecimiento">
<option value=0>Elegir Localidad</option>
</select>';
}else{
$nuevo_select = select_combinado($cod_localidad);
}
$respuesta->Assign("seleccombinado","innerHTML",$nuevo_select);
return $respuesta;
}
function validarDatos($nombre,$idestablecimiento){
if(($idestablecimiento==''))
{
$error.='El codigo del Hotel debe tener al menos 1 caracateres y deben ser sólo numeros<br/>';
$GLOBALS["flag"]=2;
}
if(($nombre=='') || (strlen($nombre)< 3 ))
{
$error.= 'El nombre del Responsable debe tener por lo menos 3 caracteres<br/>';
$GLOBALS["flag"]=2;
}
// echo $error;
return $error;
}
function procesar_formulario($form_carga){
$nombre=$form_carga["nombre"];
$idestablecimiento=$form_carga["idestablecimiento"];
$idcargo=$form_carga["idcargo"];
$telefono=$form_carga["telefono"];
$fax=$form_carga["fax"];
$err=validarDatos($nombre,$idestablecimiento);
if(!isset($err))
{ $tabla="responsable";
$condicion="nombre='$nombre' and idestablecimiento='$idestablecimiento'";
$data=sqlselect2($tabla,$condicion);
if($data==null)
{
$campos="nombre,idestablecimiento,idcargo,telefono,fax";
$valores="'$nombre','$idestablecimiento','$idcargo','$telefono','$fax'";
sqlinsert($tabla, $campos, $valores);
$salida.="Se dio de alta correctamente.";
$GLOBALS["flag"]=1;
}
else{
$salida.="No se pudo dar de alta. Ya existe un registro con esos datos ";
$GLOBALS["flag"]=2;
}
}
else{
$salida=$err;
}
//instanciamos el objeto para generar la respuesta con ajax
$respuesta = new xajaxResponse();
$respuesta->setCharacterEncoding('ISO-8859-1');
//escribimos en la capa con id="respuesta" el texto que aparece en $salida
$respuesta->Assign("resultado","style.color","#000000");
if($GLOBALS["flag"]==1){
$respuesta->Assign("resultado","style.backgroundColor","#58ACFA");
$respuesta->Assign("resultado","style.border","solid");
$respuesta->Assign("resultado","style.borderColor","#0066CC");
//$respuesta2->Assign("nombre","value","");
}
if($GLOBALS["flag"]==2){
$respuesta->Assign("resultado","style.backgroundColor","#FF0000");
$respuesta->Assign("resultado","style.border","solid");
$respuesta->Assign("resultado","style.borderColor","#CD0C01");
}
$respuesta->Assign("resultado","innerHTML",$salida);
return $respuesta;
}
$xajax->register(XAJAX_FUNCTION,'procesar_formulario');
$xajax->register(XAJAX_FUNCTION,'generar_select');
//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequest();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Sistema de Carga EOH</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="layout.css" rel="stylesheet" type="text/css" media="screen" />
<?php //la ruta a la carpeta raíz donde están las librerías xajax.
$xajax->printJavascript("xajax/");
?>
<script language="JavaScript" type="text/javascript">
function tabular(e,obj) {
tecla=(document.all) ? e.keyCode : e.which;
if(tecla!=13) return;
frm=obj.form;
for(i=0;i<frm.elements.length;i++)
if(frm.elements[i]==obj)
{
if (i==frm.elements.length-1)
i=-1;
break
}
/*ACA ESTA EL CAMBIO disabled, Y PARA SALTEAR CAMPOS HIDDEN*/
if ((frm.elements[i+1].disabled ==true) || (frm.elements[i+1].type=='hidden') )
tabular(e,frm.elements[i+1]);
/*ACA ESTA EL CAMBIO readOnly */
else if (frm.elements[i+1].readOnly ==true )
tabular(e,frm.elements[i+1]);
else frm.elements[i+1].focus();
return false;
}
</SCRIPT>
</head>
<body>
<div id="container">
<div id="header">
<?php include("header.php");?>
</div> <!--fin del header-->
<div id="navigation">
<?php include("navigation.php");?>
</div><!-- Fin navegation -->
<div id="content">
<br>
<div id="resultado"></div>
<h3>Alta de Responsables</h3>
<legend>Ingrese los siguientes datos</legend>
<br>
<br>
<form id="formulario" name="formulario">
<table class="" border="0">
<tr>
<td>Nombre y Apellido:</td>
<td><input type="text" id="nombre" name="nombre" class="required" onkeypress="return tabular(event,this)" /></td>
</tr>
<tr>
<td>Localidad</td>
<td>
<select name="idlocalidad" id="idlocalidad" onchange="xajax_generar_select(document.formulario.idlocalidad.options[document.formulario.idlocalidad.selectedIndex].value)" onkeypress="return tabular(event,this)">
<option value="0" selected="selected" onkeypress="return tabular(event,this)">Seleccione Localidad</option>
<?php
$tabla="localidad";
$data=sqlselect2($tabla,'');
foreach($data as $dato)
{
echo "<option value=$dato[idlocalidad]>$dato[idlocalidad] - $dato[nombre]</option>";
}
?>
</select>
</td>
<tr>
<tr>
<td>Hotel</td>
<td>
<div id="seleccombinado">
<select name="idestablecimiento" id="idestablecimiento" onkeypress="return tabular(event,this)" >
<option value="0">Seleccione Hotel</option>
</select>
</div>
</td>
</tr>
<tr>
<td>Cargo</td>
<td>
<select name="idcargo" id="idcargo" class="requerido" onkeypress="return tabular(event,this)" >
<option value="0" selected="selected" onkeypress="return tabular(event,this)" >Seleccione Cargo</option>
<?php
$data=mysql_query("select * from cargo order by idcargo");
while($dato=mysql_fetch_array($data))
{
echo "<option value=$dato[idcargo] onkeypress='return tabular(event,this)' >$dato[idcargo] - $dato[nombre]</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Telefono :</td>
<td><input type="text" name="telefono" class="required" onkeypress="return tabular(event,this)" /></td>
</tr>
<tr>
<td>Fax :</td>
<td><input type="text" name="fax" class="required" onkeypress="return tabular(event,this)" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Aceptar" class="boton" onclick="xajax_procesar_formulario(xajax.getFormValues('formulario'))"/></td>
</tr>
</table>
</form>
</div><!--fin del content-->