Ayuda con Ajax
Hola,
He estado mirando por todos los rincones de este código y no consigo encontrar el error,la cuestión es que tengo un formulario y quiero insertar los datos metiante ajax a una BDD,si alguién me puede ayudar a ver si encuentra el fallo en el código…los datos se envían por POST:
form.html
<html>
<head>
<link rel=”stylesheet” href=”popup.css” type=”text/css”/>
</head>
<body>
<div id=”capa_popup”></div>
<div id=”capa_form”>
<div id=”capa_form_cabecera”>
<font class=”fuente_sms”>Enviar un mensaje:</font></div>
<div id=”form_mensajes”><form onsubmit=”enviar_formulario_sms();” action=”#” method=”POST”>
<table id=”tabla_sms” width=”100%” height=”100%” border=”0”><tr><td width=”50%” valign=”top”><span class=”fuente2”>Nombre:</span><br><input type=”text” name=”nombre” id=”form_nombre” size=”50”><br><span class=”fuente2”>Dirección:</span><br><input type=”text” name=”direccion” id=”form_direccion” size=”50”><br><span class=”fuente2”>Codigo postal:</span><br><input type=”text” name=”cp” id=”form_cp” size=”50”><br><span class=”fuente2”>Teléfono:</span><br><input type=”text” name=”telefono” id=”form_telefono” size=”50”><br></td><td valign=”top”><span class=”fuente2”>Comentario sobre el trabajo:</span><br><textarea name=”asunto” cols=”50” id=”form_comentario” rows=”8”></textarea><br><br><input class=”botonenviar” type=”submit” name=”boton” id=”boton_enviar” value=”Enviar”><input class=”botonenviar” type=”button” name=”boton_cerrar” onclick=”cerrar_ventana()” value=”Cerrar”></td></tr></table>
</form>
</div>
</div>
</body>
</html>
vo25.js
function valida_admin ()
{
usuario=document.forms.form_login.user;
password=document.forms.form_login.pass;
usuario.value=usuario.value.replace(/^\s|\s$/g,””);
password.value=password.value.replace(/^\s|\s$/g,””);
if(usuario.value.length==0)
{
alert(‘Introduce un usuario’);
usuario.style.backgroundColor=’#fbc1c1’;
return false;
}
else
{
usuario.style.backgroundColor=’#ffffff’;
}
if(password.value.length==0)
{
alert(‘Introcude un password’);
password.style.backgroundColor=’#fbc1c1’;
return false;
}
else
{
usuario.style.backgroundColor=’#ffffff’;
}
return true;
}
var conexion1;
function enviar_formulario_sms()
{
conexion1=crearXMLHttpRequest();
conexion1.onreadystatechange = procesarEventos;
conexion1.open(‘POST’,’sms.php’, true);
conexion1.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);
conexion1.send(retornarDatos());
}
function retornarDatos()
{
var cad=’’;
var nom=document.getElementById(‘form_nombre’).value;
var dir=document.getElementById(‘form_direccion’).value;
var cp=document.getElementById(‘form_cp’).value;
var tel=document.getElementById(‘form_telefono’).value;
var com=document.getElementById(‘form_comentario’).value;
cad=’nombre=’+encodeURIComponent(nom)+’&direccion=’+encodeURIComponent(dir)+’&cp=’+encodeURIComponent(cp)+’&telefono=’+encodeURIComponent(tel)+’&comentario=’+encodeURIComponent(com);
return cad;
}
function procesarEventos()
{
var resultados = document.getElementById(“boton_enviar”);
if(conexion1.readyState == 4)
{
resultados.value = ‘Listo!’;
cerrar_ventana();
}
else
{
resultados.value = ‘Enviando…’;
}
}
function crearXMLHttpRequest()
{
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}
sms.php
<?php
header(‘Content-Type: text/html; charset=ISO-8859-1’);
require_once(“config.php”);
$local=BD_HOST;
$user=BD_USERNAME;
$pass=BD_PASSWORD;
$conectar=mysql_connect($local,$user,$pass);
mysql_select_db(BD_DATABASE,$conectar);
$fecha=date(“Y-m-d”,time());
$hora=date(“H:i”);
$query=”INSERT INTO sms_web VALUES(NULL,’”.$_POST[“nombre”].”’,’”.$_POST[“cp”].”’,’”.$_POST[“telefono”].”’,’”.$_POST[“comentario”].”’,’CURDATE()’,’CURTIME()’,’”.$_POST[“direccion”].”’)”;
mysql_query($query,$conectar);
mysql_close($conectar);
?>
Alguién sabe que estoy haciendo mal??hasta he mirado varios manuales…pero el ajax por post no me funciona.
Gracias!
Yo me he pertido en el ‘‘Hola’’ 
Lo recomendare a ver si se pasa alguien que sepa de esto ..
Pues no entiendo en que os perdeis xk el codigo no tiene mucha miga,he sido concreto y no he hecho un copy/paste de todo el documento.
A ver si alguien me hecha un cable
Mira a ver si te sirve esto: https://www.desarrolloweb.com/articulos/recibir-formulario-ajax-php-insertar-base-datos.html
Comentario #3 por [GOD]Serginho|US:
Pues no entiendo en que os perdeis xk el codigo no tiene mucha miga,he sido concreto y no he hecho un copy/paste de todo el documento.A ver si alguien me hecha un cable
nos hemos perdido, basicamente, por que no estudiamos programación 
se lo he recomendado a flashk y a sinsa, a ver si se pasan
Gracias
Comentario #4 por evil*:
Mira a ver si te sirve esto: https://www.desarrolloweb.com/articulos/recibir-formulario-ajax-php-insertar-base-datos.html
pero la teoría ya me la sé,además la mayoría de los manuales la lían mucho,esta bien el procedimiento pero no me funciona por algo,que no se lo que es por eso he copiado el codigo.
Comentario #2 por UrBi:
Si tienes un par de fregonas y unos cubos yo te ayudo tio
tenías que ser tú el que se me adelantara 
Comentario #1 por 2_Face:
Yo me he pertido en el ‘‘Hola’’
Lo recomendare a ver si se pasa alguien que sepa de esto ..
+1
, no entiendo NADA! 
Comentario #2 por UrBi:
Si tienes un par de fregonas y unos cubos yo te ayudo tio
Mmmmmmm Jajajajajajajajajajajajajajajaajjaaja
No se trata que dobles la recompensa, no por es la gente sabra mas o menos,
de donde no hay…! 
Comentario #7 por Atropos91:
#2 tenías que ser tú el que se me adelantara
tu hibieras sido mas cruel, era por su bien.
Yo también tuve problemas en su día intentando hacer post con ajax para gm. Dependiendo del navegador funcionaba o no. Al final me olvidé de hacerlo a mano y reescribí el código para usar jquery:
https://docs.jquery.com/Ajax/jQuery.post#urldatacallbacktype
Cada navegador trata XMLHttpRequest de una forma diferente, mi consejo es que no reinventes la rueda.
Si quieres averiguar exactamente por qué te falla en tu combinación de navegador/código para aprender instálate firebug (suponiendo que puedas usar Firefox), activa la pestaña Net para ver los params que se envían y reciben y compáralos (incluído el formato) con los que se envían y reciben en alguna web que use ajax (por ej en gm valorar un contenido o comentario hace una solicitud GET con parámetros, un POST simulado, vamos).
Comentario #14 por Zatox:
google.es y busca tutorial ajax.
Los comentarios a preguntas inocentes del tipo “búscalo en google” o “newbie” y similares serán eliminados.
Si es tan facil por que no buscas los tutoriales en google y luego los posteas aqui?
Hola,
En principio no parece que estés haciendo nada mal.
Yo intentaría ver si hay algún problema con los datos que etás enviando en el insert. Es posible que está dando error por tipo de dato o valor nulo no permitido.
Tal y como te indica slnc, debes intentar recoger qué error es el que se está produciendo y porqué, para ello necesitas ‘debugear’ de alguna manera.
Cuéntanos como va.
Regards(las plantas)
He probado el php sin usar el ajax con metodo GET y funcionaba,osea que de la bdd/el php no puede ser,sin embargo este metodo lo he sacado de aquí: https://ajaxya.com.ar/temarios/descripcion.php?cod=12&punto=7
y la coña es que el codigo del pavo le funciona,es uno de los mejores mans que he visto.
Voy a comprobar lo de Slnc y Sinsa
Era lo que me decias Slnc,no tenía mal el codigo,he probado inet explorer y funcionaba pero con firefox no.aun así tenía una función para resolver el problema:
function crearXMLHttpRequest()
{
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}
pero al final usando Jquery se soluciona y es mucho mas sencillo usar $.ajax y Json.
Gracias a todos por la ayuda pero el 80% drl codigo que he puesto ya no existe,ya he solucionado.
Saludos!
Desarrollo

Yo también tuve problemas en su día intentando hacer post con ajax para gm. Dependiendo del navegador funcionaba o no. Al final me olvidé de hacerlo a mano y reescribí el código para usar jquery:
https://docs.jquery.com/Ajax/jQuery.post#urldatacallbacktype
Cada navegador trata XMLHttpRequest de una forma diferente, mi consejo es que no reinventes la rueda.
Si quieres averiguar exactamente por qué te falla en tu combinación de navegador/código para aprender instálate firebug (suponiendo que puedas usar Firefox), activa la pestaña Net para ver los params que se envían y reciben y compáralos (incluído el formato) con los que se envían y reciben en alguna web que use ajax (por ej en gm valorar un contenido o comentario hace una solicitud GET con parámetros, un POST simulado, vamos).