Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/11/2008, 09:28
Avatar de salbatore
salbatore
 
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 8 meses
Puntos: 19
Respuesta: Refrescar DOM

Hola, jeje... te lo muestro debajo, aunque es un poco tocho, jeje:

1º Esta la accion del evento al clicar en el boton de enviar:

Código PHP:
window.onload = function()
        {
            
//boton del formulario
                
if (document.getElementById('comment_form_submit') )
                    {
                        
comment_form_submit_id document.getElementById('comment_form_submit');
                        
comment_form_submit_id.onclick = function() 
                            {
                                
comment_form_send();
                            }  
                            
                    }
        } 
2º Esta el formulario dentro del div:

Código HTML:
<div id="comment_div"  >
		<form name="comment_form" onSubmit="return false">
			<input id="comment_form_nick" type="text" />
			<input id="comment_form_text" type="text"/>
			<input id="comment_form_submit" type="submit" value="enviar" />	
		</form>
	</div> 
3º Esta la funcion que envia los datos del formulario y refresca el div trayendo de nuevo el mismo formulario:

Código PHP:
var request false;
    if (
window.XMLHttpRequest){request = new XMLHttpRequest();}
    function 
comment_form_send() 
        {
            if (
window.ActiveXObject
                {
                    try{
request = new ActiveXObject("Msxml2.XMLHTTP");} 
                    catch(
e
                        {
                            try{
request = new ActiveXObject("Microsoft.XMLHTTP");} 
                            catch(
e){request false;}
                         }
                }
            if (
request
                {
                    
//nick
                        
if (document.getElementById('comment_form_nick') )
                            {
                                
comment_form_nick_validation document.getElementById('comment_form_nick');
                                
comment_nick_value=comment_form_nick_validation.value;
                            }
                        else{
comment_nick_value='';}
                    
//text
                        
if (document.getElementById('comment_form_text') )
                            {
                                
comment_form_text_validation document.getElementById('comment_form_text');
                                
comment_text_value=comment_form_text_validation.value;
                            }
                        else{
comment_text_value='';}
                    
//envio de los datos
                        
comment_div_id document.getElementById('comment_div');
                        
request.onreadystatechange comment_form_receibe;
                        
request.open("POST""/comment_process.php");
                        
request.setRequestHeader('Content-Type''application/x-www-form-urlencoded;');
                        
request.send
                            
("url="+encodeURIComponent(self.location.href)
                            +
"&nick="+encodeURIComponent(comment_nick_value)
                            +
"&text="+encodeURIComponent(comment_text_value)
                            );
                }
        }
    function 
comment_form_receibe() 
        {
            
comment_div_id document.getElementById('comment_div');
            if (
request.readyState == 4
                {
                    if (
request.status == 200
                        {
                            
comment_came request.responseText;
                            
comment_div_id.innerHTML comment_came;
                        }
                } 
            else 
                {
                    
comment_div_id.innerHTML "&larr; Validando";
                }
        } 
Todo funciona perfectamente... lo unico que falla es que al traer de nuevo el mismo formulario el evento de onclick del boton de enviar no funciona. ¿Sabes la razon?... llevo un tiempo haciendo formulario con estas funciones y funcionan perfectamente. Solo me ha dado este problema... que es algo grave.