Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/08/2008, 05:59
Avatar de Eleazan
Eleazan
 
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 8 meses
Puntos: 326
Respuesta: Insercion de datos desde un formulario

Para enviar un formulario, yo uso las dos siguientes funciones:

Código:
function enviarFormulario(url, formid, divid)
    {
        cargando(divid);
        var Formulario = document.getElementById(formid);
        var longitudFormulario = Formulario.elements.length;
        var cadenaFormulario = "";
        var sepCampos = "";
        var valor = "";
        for (var i=0; i < longitudFormulario; i++)
            {
                valor = Formulario.elements[i].value;
                valor = escape(valor);
                cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+valor;
                sepCampos = "&";
            }
        var peticion = nuevoAjax();
        peticion.open("POST", url, true);
        peticion.onreadystatechange = function()
            {
                if (peticion.readyState == 4)
                    {
                        if (peticion.status == 200 && !peticion.error)
                            {
                                var obj = document.getElementById(divid);                                
                                txt=unescape(peticion.responseText);
                                obj.innerHTML = txt;
								$('#form-msg').css('display','block');
                            }
                        else
                            {
                                var obj = document.getElementById(divid);                                
                                obj.innerHTML = 'Se ha producido un error inesperado. Intentelo más tarde';
								$('#form-msg').css('display','block');
                            }
                    }
            }
        peticion.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
        peticion.send(cadenaFormulario);
        return false;
    }

function nuevoAjax() {
	if (window.XMLHttpRequest)
    { 
        // Si es Mozilla, Safari etc
        return new XMLHttpRequest ();
		//alert('Selected XMLHttpRequest');
		
    }
    else  if (window.ActiveXObject)
    {  	
        // pero si es IE
        try 
        {
            return new ActiveXObject ("Msxml2.XMLHTTP");
			//alert('Selected Msxml2.XMLHTTP');
        }
        catch (e)
        {
            // en caso que sea una versi&oacute;n antigua
            try
            {
                return new ActiveXObject ("Microsoft.XMLHTTP");
				//alert('Selected Microsoft.XMLHTTP');
            }
            catch (e)
            {
            }
        }
    } 
	else {
    return false;
	}
}
En tu código, no veo peticion.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1"); (creo que hace falta :D)