Buenas,
Me he encontrado este código con el fin de implementar un sistema de comentarios. El formulario "formulario_registro" está compuesto únicamente por un textarea "text" y un botón de submit que lleva a esta función mediante el evento onsubmit:
Código HTML:
Ver original<form action="" class="formulario" name="formulario_registro" method="post" onsubmit="enviarComentario(); return false"> <div class="input-group"> <input type="submit" id="btn-submit" class="btn btn-primary" value="Comentar" name="comenta">
El código JS en cuestión es este:
Código Javascript
:
Ver original<script>
function objetoAjax(){
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;
}
//Función para recoger los datos del formulario y enviarlos por post
function enviarComentario(){
//div donde se mostrará lo resultados
divResultado = document.getElementById('comments');
//recogemos los valores de los inputs
text=document.formulario_registro.text.value;
var id = "<?php echo $_GET['id']; ?>" ;
var usu = "<?php echo $_SESSION['userid']; ?>" ;
var nombre = "<?php echo $_SESSION['name']; ?>" ;
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del metodo POST
//archivo que realizará la operacion de inserción en BBDD
//inscom.php
ajax.open("POST", "inscom.php",true);
//cuando el objeto XMLHttpRequest cambia de estado, la función se inicia
ajax.onreadystatechange=function() {
//la función responseText tiene todos los datos pedidos al servidor
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divResultado.innerHTML = ajax.responseText
//llamar a funcion para limpiar los inputs
LimpiarCampos();
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores a registro.php para que inserte los datos
ajax.send("id="+id+"&login="+usu+"&nombre="+nombre+"&text="+text)
}
//función para limpiar los campos
function LimpiarCampos(){
document.formulario_registro.text.value="";
document.formulario_registro.text.focus();
}
</script>
Este código es del 2010 y me gustaría saber como se podría implementar el código anterior con la función $.ajax de jQuery o si existe una manera más moderna de hacerlo.
Muchas gracias de antemano.