Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/06/2010, 19:54
mrdan
 
Fecha de Ingreso: junio-2010
Mensajes: 11
Antigüedad: 13 años, 11 meses
Puntos: 0
Problemas al pasar variables con POST

Buenas a todos,
estoy tratando de pasar variables via GET y POST respectivamente, el GET funciona bien, pero cuando envio el POST no me muestra nada, ya que por POST quiero grabar en la base de datos los datos ingresados desde el formulario.

La libreria de Ajax que uso la saque de una web amiga y es la siguiente:

LibreriaAjax.js

Código:
function creaAjax(){
  var objetoAjax=false;
  try {
   /*Para navegadores distintos a internet explorer*/
   objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {
     /*Para explorer*/
     objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
     } 
     catch (E) {
     objetoAjax = false;
   }
  }

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

 function FAjax (url,capa,valores,metodo)
{
   var ajax=creaAjax();
   var capaContenedora = document.getElementById(capa);

/*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
 if(metodo.toUpperCase()=='POST'){
    ajax.open ('POST', url, true);
    ajax.onreadystatechange = function() {
         if (ajax.readyState==1) {
                 capaContenedora.innerHTML="Cargando.......";
         }
         else if (ajax.readyState==4){
            if(ajax.status==200)
            {
                 document.getElementById(capa).innerHTML=ajax.responseText; 
            }
            else if(ajax.status==404)
                 {

                     capaContenedora.innerHTML = "La direccion existe";
                 }
             else
                 {
                     capaContenedora.innerHTML = "Error: ".ajax.status;
                 }
        }
    }
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajax.send(valores);
    return;
}
/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
if (metodo.toUpperCase()=='GET'){

    ajax.open ('GET', url, true);
    ajax.onreadystatechange = function() {
         if (ajax.readyState==1) {
                 capaContenedora.innerHTML="Cargando.......";
         }
         else if (ajax.readyState==4){
            if(ajax.status==200){ 
                 document.getElementById(capa).innerHTML=ajax.responseText; 
            }
            else if(ajax.status==404)
                 {

                     capaContenedora.innerHTML = "La direccion existe";
                 }
                 else
                 {
                     capaContenedora.innerHTML = "Error: ".ajax.status;
                 }
        }
    }
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajax.send(null);
    return
}
}
El codigo html que uso es asi:

Código:
<html>
   <head>
      <title>Ajax: Ejemplo - Env&iacute;o de datos por m&eacute;todo GET</title>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="libreriaAjax.js"></script>
        
    </head>
<body>

<script language="javascript">

function carga(){
	var txtchimento = document.getElementById('txtchimento').value;
	var valores = 'txtchimento='+escape(txtchimento);
	FAjax('mensajes.php?formulario=ok','chimento',valores,'post'); return false;
}

</script>

<h3>MENSAJES DE LECTORES</h3>
<iframe width="302" height="200" src="chimentos.php" scrolling="no" frameborder="0" border="0"></iframe>
<div id="chimento" style="font-size: 11px; width: 300px; overflow: hidden;">
	<div style="padding-top:10px;">
		<a onClick="FAjax('mensajes.php?formulario=si','chimento','','get'); return false" href="#" style="font-size:12px" class="enlaceboton">Agregar un mensaje</a>
	</div>
</div>
</body>
</html>
Cuando le doy un click en Agregar un mensaje verifico que sea por GET el envio. Aca carga el formulario que se rellenara con los datos que se van a cargar:

Código:
<?php

if ( $_GET ){
	echo '<form style="padding-top: 0px;margin-top: 0px;" name="chimento" onsubmit="return carga();">';
	echo '<p align="center"><span style="letter-spacing: 5px;font-weight: bold;">Agregar un mensaje</span></p>';
	echo '<label>';
	echo '<textarea name="txtchimento" id="txtchimento" cols="40" rows="4" style="font-size:12px;"></textarea>';
	echo '</label>';
	echo '</p>';
	echo '<p style="padding:4px;">';
	echo '<label>';
	echo '<input type="submit" value=" Enviar " style="font-size:14px;" onsubmit="#";>';
	echo '</label>';
	echo '</p>';
	echo '</form>';
} else if ( $_POST ){
	$var = $_POST['valores'];
	echo "Variable: ".$var;
}
?>
Cuando le doy ENVIAR se ejecuta carga() y ahi vuelve al archivo mensajes.php pero siempre entra al formulario y no me valida la variable valores, que estoy haciendo mal.??

Si alguien me puede ayudar u orientar donde esta el error les agradeceria.

Esta es la dirección web donde lo estoy probando:
http://www.24horasdigital.com.ar/ejercicios/ahg.php