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: 19 años, 7 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.