¡Hola!
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
$sqlpadre = mysql_query("SELECT * FROM `seccion` ORDER BY `nombre` ASC"); ?>
<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 originalfunction 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.