Comunidad de diseño web y desarrollo en internet online

Problema con formulario con AJAX por favor necesito ayuda!

Citar            
MensajeEscrito el 02 Ago 2007 05:13 pm
Hola a todos soy nuevo en este foro, quisiera exponer aqui mi duda:

Tengo una web en php y algo de AJAX, AJAX estoy utilizando para abrir mis secciones dentro del index.php.
-De esta manera estoy llamando a mis secciones dentro del index.php:

Código :

<a href="#" onClick="cargaContenido ('contacto.php','ladoCentral')">

ladocentral viene a ser mi DIV

este es el codigo AJAX, q por cierto lo saque de los tutoriales de este portal:

Código :

function nuevoAjax(){
  var xmlhttp=false;
  try {
   // Creacion del objeto ajax para navegadores diferentes a Explorer
   xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   // o bien
   try {
     // Creacion del objet ajax para Explorer
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) {
     xmlhttp = false;
   }
  }

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


function cargaContenido (url,capa){
          var ajax=nuevoAjax();
          capaContenedora = document.getElementById(capa);

   /*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
        ajax.open ('GET', url, true);
         ajax.onreadystatechange = function() {
         if (ajax.readyState==1) {
         capaContenedora.innerHTML="<img src='includes/download_loader.gif' align='middle'><font style='font-size:12px; font-family:Helvetica,Arial;' >&nbsp;Cargando...</font>";
         }
         else if (ajax.readyState==4){
                   if(ajax.status==200)
                   {
                        document.getElementById(capa).innerHTML=ajax.responseText;
                   }
                   else if(ajax.status==404)
                                             {

                            capaContenedora.innerHTML = "La direccion no existe";
                                             }
                           else
                                             {
                            capaContenedora.innerHTML = "Error: ".ajax.status;
                                             }
                                    }
                  }
      //   ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      //   ajax.send(valores);
         ajax.send(null);
         return;
   
      }

La cuestión esta q cuando ejecuto mi formulario (contacto.php) aqui el código:

Código :

<html>
<body>
<? 
if (!$HTTP_POST_VARS){ 
?>
<form action="contacto.php">
Nombre<input type="text" name="nombre" class="inputfrm"><br>
Email<input type="text" name="mail" class="inputfrm"><br>
Mensaje: <textarea name="mensaje" cols=32 rows=6 class="inputfrm"></textarea>
  <input name="reset" type="reset" class="btnfrm" size="10px" value="limpiar" >   
  <input type="submit" value="enviar" ></div>

</form>       

<? 
   }else{ 

//dirección de Recepción
$cbo = "[email protected]";

    //cuerpo 
    $cuerpo = "<b>DATOS DE LA PERSONA QUE ENVIA EL MENSAJE</b><br>\n"; 
    $cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
   $cuerpo .= "<br>Email: " . $HTTP_POST_VARS["email"] . "\n";
    $cuerpo .= "<br><br>Mensaje: "."\n". $HTTP_POST_VARS["mensaje"] . "\n"; 

    //mando el correo... 
    mail($cbo,"Mensaje web enviado",$cuerpo,$headers); 

    //gracias
    echo "Mensaje enviado"; 

} 

?>


...cuando lo uso sin ajax ni nada funciona bien me sale el mensaje de: Mensaje enviado normal, pero cuando el contacto esta dentro del index.php por mediodel AJAX el mensaje de Mensaje enviado aparece fuera del index.php, e intentado varias maneras pero no me sale , e dejado el codigo del contacto.php sin ningun agregado para q me puedan dar una solución LO AGRADECERIA MUCHO


SALUDOS
[/code]

Por tito_drums

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 02 Ago 2007 05:18 pm
Puede ser que este diciendo giladas, pero proba sacando del archivo donde haces el echo, las etiquetas <html> y <body>

Por PabloHdS

251 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Ago 2007 05:47 pm

PabloHdS escribió:

Puede ser que este diciendo giladas, pero proba sacando del archivo donde haces el echo, las etiquetas <html> y <body>

Es lo mismo, gracias por la intención

Por tito_drums

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 03 Ago 2007 01:05 am
El tratamiento de un formulario es muy diferente a los links, aca hay un ejemplo de borrar un item de un carrito de compras.

Este es el html:

Código :

<form action="javascript:eliminarCarritoItem(document.getElementById('form'),'ajax_lateral');" id="form" method="post">
<input name="" value="Eliminar" type="submit" />
</form>

Cuando se hace click en el boton se ejecuta el action del formulario, ese action va a ejecutar un javascript.

Ahora el ajax:

Código :

function eliminarCarritoItem(obj, id_contenedor){
   var vitem, contenedor, cadena;
   frm = obj;
   contenedor = document.getElementById(id_contenedor);
   vitem = frm.item_txt.value;
   cadena = "item=" + vitem;
   ajax=NuevoAjax();
   ajax.open("POST", "eliminarCarritoItem.php",true);
   ajax.onreadystatechange=function() {
      if (ajax.readyState==4) {
         contenedor.innerHTML = ajax.responseText
       }
   }
   ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   ajax.setRequestHeader("Content-length", cadena.length);
   ajax.setRequestHeader("Connection", "close");   
   ajax.send(cadena);
}

Este ajax envia las variables al archivo php en cuestion, ahi tendrias que poner el php que hace lo que tenga que hacer, en tu caso "contacto.php".

Por Dientuki

Claber

2021 de clabLevel

11 tutoriales
1 articulo

Genero:Masculino   Héroes

Front-end Ninja

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.