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ío de datos por mé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