Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/05/2008, 01:52
Avatar de emajesus
emajesus
 
Fecha de Ingreso: abril-2003
Mensajes: 278
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: AJAX + Simple form

GatorV,

Explico mejor mis avances. He construido dos páginas:

PÁGINA 03FORM_WEB2.ASP

<SCRIPT LANGUAGE=JavaScript>
function nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

function enviarFormulario(url, formid, divrespuesta){
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="&";
}
divrespuesta=nuevoAjax();
divrespuesta.open("POST", url, true);
divrespuesta.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
divrespuesta.send(cadenaFormulario);
divrespuesta.onreadystatechange = function() {

var divrespuesta = document.getElementById("divrespuesta");
if(divrespuesta.readyState == 4)

{
divrespuesta.innerHTML='GRACIAS';
}
else
{
divrespuesta.innerHTML='Procesando...';
}
}
}
</script>



<script type="text/javascript">
function mostrar(num) {
document.getElementById('capa-1').style.display = (num==-1) ? 'block' : 'none';
document.getElementById('capa0').style.display = (num==0) ? 'block' : 'none';
document.getElementById('capa1').style.display = (num==1) ? 'block' : 'none';
}
</script>


<div id="divrespuesta">

<form action="#" method="post" name="formid" id="formid" autocomplete="off">
<div id="capa-1">
¿Te ha sido útil esta informaci&oacute;n?
<input type="radio" name="nombre" value="si" onclick = "mostrar(0)" />&nbsp;S&iacute;&nbsp;&nbsp;
<input type="radio" name="nombre" value="no" onclick = "mostrar(1)" />&nbsp; No
</div>
<div id="capa0" style="display:none">
Nos alegra que la informaci&oacute;n te haya sido &uacute;til. ¿Qu&eacute; aspectos de esta respuesta te han gustado?<br><input type="text" name="mensaje" value = "" size="50" />
&nbsp;<input class="submitbutton" type="submit" value="Enviar comentarios" id="enviar" tabindex="5" onclick="enviarFormulario('03form_send.asp','formi d', 'divrespuesta');"/>
</div>
<div id="capa1" style="display:none">
Haznos saber por qu&eacute; no te ha resultado &uacute;til esta informaci&oacute;n. ¡Gracias!<br><input type="text" name="mensaje" value = "" size="50" />
&nbsp;<input class="submitbutton" type="submit" value="Enviar comentarios" id="enviar" tabindex="5" onclick="enviarFormulario('03form_send.asp','formi d', 'divrespuesta');" />
</div>

</form>

</div>




PÁGINA 03FORM_SEND.ASP:

<%
'------------------------------------------------
myEmail = "[email protected]"
myPassword = "******"
mymensaje = request("nombre")
mymensaje = mymensaje & Request("mensaje")
'------------------------------------------------
%>

<%Dim objEmail


Set objEmail = Server.CreateOBject( "JMail.Message" )
objEmail.MailServerUserName = "[email protected]"
objEmail.MailServerPassword = "*******"
objEmail.From = "[email protected]"
objEmail.ReplyTo = "[email protected]"
objEmail.AddRecipient "[email protected]"
objEmail.Subject = "Comentarios"
objEmail.Body = mymensaje
objEmail.Send("mail.midominio.com")
Set objEmail = Nothing
%>



1.- Cuando ejecuto el formulario, quisiera que una vez enviado apareciera el mensaje GARCIAS y no el formulario de nuevo.
2.- Cuando lo incluyo en la página me refresca la página; ¿debo incluir algo en el BODY de la página donde incluyo el formulario a través de un INCLUDE?
3.- Pese a marcar sólo un botón, recibo ambos: 'sí y no' en la respuesta, como si hubiera marcado ambos botones de radio; ¿cómo lo hago para recibir sólo la respuesta marcada por el usuario? He comprobado el código y no veo error.

Gracias, Emajesus

Última edición por emajesus; 22/05/2008 a las 09:01