AJAX - AJAX y ASP, duda respuesta al formulario

 
Vista:

AJAX y ASP, duda respuesta al formulario

Publicado por R Lopez (1 intervención) el 28/06/2010 19:11:27
Hola,

tengo una duda respectoa un formulario AJAX y ASP que estoy haciendo.

El formulario actualmente graba los campos que hay en un formulario en una tabla de una bbdd, mediante AJAX.

Hasta ahi funciona correctamente.

El problema es que no sé como devolver una respuesta a la página que se está visualizando. Quiero mandar una respuesta del tipo "Datos guardados ok." ó "Datos introducidos incorrectos". Este texto lo pongo en una variable llamada "msgerror".

¿cómo puedo hacerlo a partir del código que ya tengo?

Os dejo el código ASP por si alquien puede echarme una mano, y gracias por anticipado! Es una sola página ASP llamada "alta.asp".

Gracias y saludos.

<%dirCSS="../"%>
<!--#include file="../cabeceras/cabecera_home.asp"-->
<!--#include file="../cabeceras/cabecera_home2.asp"-->
<!--#include file="../cabeceras/botonera_home.asp"-->
<%

'COMPROBAMOS EL SUBMIT DE FORMULARIO'
set rs=server.createobject("ADODB.Recordset")
sql="select * from cliente_datos where iduser='000000'"
rs.open sql, conexio, 1,1
redim arrValCampos(rs.fields.count-1)
redim arrNomCampos(rs.fields.count-1)
for xcampos=2 to rs.fields.count-1
arrNomCampos(xcampos)=rs.fields(xcampos).name
next
rs.close

if request.form("checkeaForm")="true" then
'Aqui comprobamos errores


'ahora si todo esta ok, guardamos'
sql="select * from cliente_datos where iduser='"&request.form("email1")&"'"
rs.open sql, conexio, 1,2
if rs.eof then
rs.addnew
rs("iduser")=request.form("email1")
redim arrValCampos(rs.fields.count-1)
redim arrNomCampos(rs.fields.count-1)
for xcampos=2 to rs.fields.count-1
rs.fields(xcampos).value=request.form(rs.fields(xcampos).name)
arrValCampos(xcampos)=rs.fields(xcampos).value
arrNomCampos(xcampos)=rs.fields(xcampos).name
next
rs.update
guardadoOK=true
msgerror="Los datos se han guardado correctamente."
</script>"
else
redim arrValCampos(rs.fields.count-1)
redim arrNomCampos(rs.fields.count-1)
for xcampos=2 to rs.fields.count-1
arrValCampos(xcampos)=request.form(rs.fields(xcampos).name)
arrNomCampos(xcampos)=rs.fields(xcampos).name
next

error1=true
guardadoOk=false
msgerror="Este usuario ya existe."
</script>"
end if
rs.close

if guardadoOk then
'ahora guardamos el user en tabla users
sql="select * from users"
rs.open sql, conexio, 1,2
rs.addnew
rs("user")=request.form("email1")
rs("pass")=request.form("pass")
rs("perfil")="cliente"

rs.update
rs.close

'Ahora creamos la carpeta de usuario cliente..
CrearCarpeta raizpuntosybarra & session("perfil")& "\mis_archivos\userfiles\"&dimeiduser(request.form("email1"))
CrearCarpeta raizpuntosybarra & session("perfil")& "\mis_archivos\userfiles\"&dimeiduser(request.form("email1")) & "\audio"
CrearCarpeta raizpuntosybarra & session("perfil")& "\mis_archivos\userfiles\"&dimeiduser(request.form("email1")) & "\documentos"
CrearCarpeta raizpuntosybarra & session("perfil")& "\mis_archivos\userfiles\"&dimeiduser(request.form("email1")) & "\imagenes"
CrearCarpeta raizpuntosybarra & session("perfil")& "\mis_archivos\userfiles\"&dimeiduser(request.form("email1")) & "\videos"
end if


end if

%>

<script>

var xmlHttp;
function CreateXmlHttp()
{

// Probamos con IE
try
{
// Funcionará para JavaScript 5.0
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
peticion = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
{
peticion = null;
}
}

// Si no se trataba de un IE, probamos con esto
if(!peticion && typeof XMLHttpRequest != "undefined")
{
peticion = new XMLHttpRequest();
}

return peticion;
}

function enviarFormulario(url, formid){
CreateXmlHttp();
var Formulario = document.getElementById(formid);
var longitudFormulario = Formulario.elements.length;
var cadenaFormulario = ""
var sepCampos
sepCampos = ""
for (var i=0; i <= Formulario.elements.length-1;i++)
{
cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
sepCampos="&";
}

peticion.open("POST", url, true);
peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
peticion.onreadystatechange = function ()
{
if (peticion.readyState == 4) {
document.getElementById('Ficha').innerHTML = "<%=msgerror%>";
alert('<%=msgerror%>');
}
}
peticion.send(cadenaFormulario);

}
</script>

<div id="contenido_cliente" >
<!--form id="fmrDatosCliente" method="post" action="alta.asp"-->
<form id="fmrDatosCliente" method="post" action="javascript:enviarFormulario('alta.asp', 'fmrDatosCliente');">
<input type="hidden" id="checkeaForm" name="checkeaForm" value="true">
<table border="0" width="50%">


<%if guardadoOK then %>
<tr><td colspan="2"><%="Los datos se han guardado correctamente."%></td></tr>
<tr><td colspan="2"><%="Recibirá un email en su cuenta de correo para confirmar su alta. Gracias."%></td></tr>
<%else%>
<tr><td><%="Rellene sus datos personales."%></td><td><input type="submit" value="Guardar"></td></tr>
<%end if%>
<%if error1 then %>
<tr><td colspan="2"><%=msgerror%></td></tr>
<%end if%>

<div id="Ficha"></div>

<%if not guardadoOK then%>
<tr><td>Contraseña: </td><td><input type="password" id="pass" name="pass" value="<%=request.form("pass")%>"></td></tr>
<%
if ubound(arrNomCampos)>0 then
for xcampos=2 to ubound(arrNomCampos)
%>
<tr>
<td>
<%=arrNomCampos(xcampos)%>: 
</td>
<td>
<input type="text" name="<%=arrNomCampos(xcampos)%>" id="<%=arrNomCampos(xcampos)%>" value="<%=arrValCampos(xcampos)%>">
</td>
</tr>
<%
next
end if
set rs=nothing
%>
<%end if%>
</table>

</form>
</div>
<!--#include file="../cabeceras/pie_home2.asp"-->
<!--#include file="../cabeceras/pie_home.asp"-->
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder