Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2012, 18:47
graygler
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Procesar un formulario dentro de un div y mostrar su resultado en el mismo div

Hola buenas noches a tod@s, les escribo esto porque ya no sé que más hacer para lograr lo que quiero. No sabía muy bien como explicarlo en el título, pero espero poder aclarar algo más en esta explicación (soy bastante novato en este lenguaje).

Tengo un index.php con 3 div (menú, contenido, pie). En el div="contenido" cargo automáticamente registro.php (con <body onload='.......'>), de modo que se queda en medio de la página y será este div el que vaya cambiando en todo momento (los div menú y pie serán estáticos).

A la hora de navegar dentro de ese div no tengo problema, uso ajax con una función tal que así (en el fichero ajax.js):

Código:
var peticion = false;
if (window.XMLHttpRequest) {
  peticion = new XMLHttpRequest();
} else if (window.ActiveXObject) {
  peticion = new ActiveXObject("Microsoft.XMLHTTP");
}

function cargarExterno(datos,divID) {
  if(peticion) {
   var obj = document.getElementById(divID);
   peticion.open("GET", datos);
   peticion.onreadystatechange = function() {
  if (peticion.readyState == 4) {
   obj.innerHTML = peticion.responseText;
  }
}
peticion.send(null);
}
}
A esta función la llamo, por ejemplo, desde un simple <a href=cargarExterno('nueva_alta.php','contenido')>

Hasta ahí bien, pero el problema me viene cuando quiero seguir esa misma dinámica y tengo que procesar un formulario que me devuelva el resultado dentro del mismo div="contenido"...

He probado muchas cosas pero ninguna me termina de hacer lo que yo busco. He hecho varias pruebas con jquery y nada. Como por ejemplo esta función en fichero .js:

Código:
$(function(){
    $('#form_registro').submit(function(){
        var data = $(this).serialize();

        $.post('alta.php', data, function(respuesta){
            $('#contenido').find('dl').slideUp("normal", function(){
                $('#contenido').html(respuesta);
            })
        });
        
        return false;
    });
});
¿Cómo podría enviar el resultado de un formulario a ese mismo div, teniendo en cuenta que lo estoy ejecutando dentro de una página.php que está mostrada a su vez dentro de un div="contenido" de la página principal? No sé si me estoy explicando o lo lío cada vez más, pero es que es eso realmente lo que busco. Si alguien tiene dudas sobre lo que quiero, que me pregunte e intentaré explicarme mejor.

La verdad es que no sé si el tema está correctamente situado en este apartado del foro, pero lo he colocado aquí porque es donde más encaja, desde mi humilde punto de vista. Si este no es el apartado correcto, pido disculpas, así como también por si no me he mostrado todo lo claro en la explicación como me hubiese gustado.

Muchas gracias a todos de antemano por vuestras respuestas. Saludos.