Tengo un formulario de contactos, este reconoce errores como cuando falta un campo por llenar o cuando un correo no tiene arroba y ademas confirma el envio del mensaje pero estos salen en la misma ventana del formulario reemplazandolo del todo, lo que yo quisiera es que saliera como una pequeña ventana emergente al lado o encima de la mitad del formulario (para el caso de llenado de campos y la falta de arroba, para el caso de la confirmacion estoy tratando de que salga al pie del formulario) para no marear al usuario, he estado buscando manuales al respecto pero no los encuentro si alguien me podria dar una mano en esto estaria muy agradecida.
La FAQ Formulario HTML y PHP tiene Pertenece a la categoría:
| Respuesta de Wey |
17/4/07 |
Con ajax lo que consigues es hacer 'llamadas dinámicas' a través de javascript, es decir, cuando pase 'algo' llamo a pagina.php y pinto donde necesite el resultado.
A mi al principio me costo bastante pillar el concepto y saber aplicar el código que veía por ahí, al final, retoque un poco, me hice mi función, y todo precioso. Pego código que intento explicarlo un poco vale?
#1#*********************************
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;
}
#2#**************************************
function recarga(origen,pagina,capa){
if(origen!=null)
var valor=document.getElementById(origen).value;
if(valor!=''){
ajax=nuevoAjax();
if(origen!=null)
ajax.open("GET", pagina+valor,true);
else
ajax.open("GET", pagina,true);
ajax.onreadystatechange=function(){
if(ajax.readyState==4){
document.getElementById(capa).innerHTML=ajax.responseText;
}
}
ajax.send(null);
}
}
#3#************************************************
<input name="campo1" type="text" class="cajagenerica" id="campo1" onkeyup="recarga('campo1','pagina.php?valor=','A');">
***************************************************
#1# es el código para crear el objeto ajax, pégalo tal cual en tu .js o donde te guste escribir los scripts.
#2# es la función a la que llamo desde el evento, como se puede ver en el input #3#.
'origen' es el elemento desde donde llamo (caja de texto, combo,...) y me vale para tomar su valor.
'pagina' es a la pagina que llamo desde la función, la que luego pintara el resultado (por ej, "falta la @ en su dirección de correo").
'destino' es el id del <div> donde se pintara el resultado.
Con esto llamamos a una pagina en la que por ejemplo si ponemos:
<font color="red">Error en el formato del campo e-mai.l</font>
Nos pintara justo esa frase, en rojo, dentro del div que le hemos dicho.
Yo utilizo div's porque es lo que mejor se me ajusta, pero igualmente ese campo destino puede ser un input por ejemplo.
Se que es un poco lioso así q haz pruebas, y cualquier duda ya sabes donde preguntar.
|
Comentarios de los visitantes
| Se muestra un comentario revisado |
Comentario de mchcozar
02/5/07
Por lo que estoy observando, tú estás iniciando en lo que es programación en PHP, por lo que creo que entrarle a Ajax desde el principio se te va a hacer un poco complicado. Te sugiero que utilices una función de Javascript en combinación con PHP que te mostrará una pequeña ventana de tipo "MessageBox". Actualmente yo uso esta que me ha sido de mucha utilidad:
function mensaje_error($msg)
{
echo("<script language='JavaScript'>");
echo("alert('$msg');");
echo("</script>");
exit();
}
Esta función la puedes incluir al inicio de tu página y luego invocarla en cualquier otra parte de la misma, por ejemplo:
mensaje_error('Hola Mundo');
|
|