Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/06/2008, 13:22
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 2 meses
Puntos: 11
Respuesta: new Ajax.Updater

Hola mmm24.. mira, el updater de prototype es para agregar o sustituir contenidos en algún contenedor de tu DOM, para lo que quieres estas pasando algo de lógica a tu javascript de vuelta y la forma adecuada de hacerlo es pasarle alguna estructura XML o JSON construido desde PHP para que desde el cliente sepas cual fue el resultado de ver si existia el usuario. aqui abajo te pongo un código que usa request en ves de updater que evalue JSON por su facilidad.


Código HTML:
<script type="text/javascript">
//<![CDATA[

// funcion para hacer la solicitud asyncronica
function fetchStatus(){
new Ajax.Request('ajaxcontrol.php',
  {
    method:'get',
	parameters: { textbox: $("txtUsuario").value },
    onSuccess: leeJSON
  });
}


// funcion que lee el resultado de JSON y según tu lógica de PHP construyes la respuesta
function leeJSON(resp){
var existe="";
var jsonTexto=resp.responseText;
var jsonObj=eval("("+jsonTexto+")");
existe=jsonObj.usuario.existe;

if(existe == "si"){
alert("si existe"); // aqui ya puedes manejar tu DOM a como necesites. por ejemplo insertar cocntenido en txtUsuarioValid o bien disabled algunos campos, ya tu decides con el resultado de "existe"
$("segundo").disabled = "disabled"; // o disable("segundo");
// 
}

}

Event.observe(window, 'load', function() {
 Event.observe('txtUsuario', 'blur', fetchStatus);
});

//]]
</script>


<p>
<input type="text" name="txtUsuario" id="txtUsuario" maxlength="20" onkeyup="this.value=this.value.toUpperCase()"></input><br /><br />
<input type="text" id="segundo" name="segundocampo" />
<span id="txtUsuarioValid" ></span>
</p> 


en tu php construyes el json, si tienes dudas del formato JSON ve aquí http://www.json.org/

Código PHP:
<?php
// aqui toda tu lógica PHP
if( $_GET['textbox'] ){

echo(
'{"usuario": {
"existe": "si"
}}'
);

}
exit;

?>

bueno un saludo, espero te sirva.
__________________
http://dev.wsnetcorp.com