Estoy usando un código AJAX para enviar un formulario de contenido de forma que no sea necesario recargar la página para que éste sea enviado a la base de datos.
El código funciona a veces, lo cual es extraño, porque unas veces se envían todos los parámetros, y otras, la mayoría, falta el textarea.
El código es el siguiente:
Formulario:
Código PHP:
Ver original
<form method="post" name="nuevo_contenido" action="" onsubmit="enviarDatosContenido(); return false"> <h2>Nuevo contenido</h2> <p><label>Título del contenido:</label> <input type="text" name="titulo" id="crearcont" class="crearcont"></p> <p><label>Contenido:</label><br> <textarea name="contenido" id="descripcion" class="textcrearcont"></textarea><br></p> <p><label>Sección:</label> <select id="optioncrearcont" name="padre" class="selectcrearcont"><?php ?> <option value="<?php echo $option['tres'];?>"><?php echo $option['nombre'];?></option> <?php }?> </select></p> <p> <label> <input type="submit" name="enviar" value="Enviar" id="envcrearcont"> </label> </p> </form> <div id="resultado"></div>
AJAX
Código Javascript:
Ver original
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; } function enviarDatosContenido(){ //donde se mostrará lo resultados divResultado = document.getElementById('resultado'); //valores de los inputs tit=document.nuevo_contenido.titulo.value; con=document.nuevo_contenido.contenido.value; pad=document.nuevo_contenido.padre.value; //instanciamos el objetoAjax ajax=objetoAjax(); //uso del metodo POST //archivo que realizará la operacion //registro.php ajax.open("POST", "registro.php",true); ajax.onreadystatechange=function() { 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 ajax.send("titulo="+tit+"&contenido="+con+"&padre="+pad) } function LimpiarCampos(){ document.nuevo_contenido.titulo.value=""; document.nuevo_contenido.prototype.value=""; document.nuevo_contenido.padre.value=""; }
¿Alguien podría decirme a que se debe?
Muchas gracias de antemano.