Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/05/2011, 11:33
Ueki
 
Fecha de Ingreso: septiembre-2009
Mensajes: 210
Antigüedad: 14 años, 7 meses
Puntos: 19
Problema intermitente con formulario

¡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
  1. <form method="post" name="nuevo_contenido" action="" onsubmit="enviarDatosContenido(); return false">
  2.   <h2>Nuevo contenido</h2>
  3.   <p><label>Título del contenido:</label> <input type="text" name="titulo" id="crearcont" class="crearcont"></p>
  4.   <p><label>Contenido:</label><br>
  5.         <textarea name="contenido" id="descripcion" class="textcrearcont"></textarea><br></p>
  6.   <p><label>Sección:</label> <select id="optioncrearcont" name="padre" class="selectcrearcont"><?php
  7.         $sqlpadre = mysql_query("SELECT * FROM `seccion` ORDER BY `nombre` ASC");
  8.          while($option = mysql_fetch_array($sqlpadre)){
  9.              ?>
  10.              <option value="<?php echo $option['tres'];?>"><?php echo $option['nombre'];?></option>
  11.              <?php
  12.          }?>
  13.          </select></p>
  14.   <p>
  15.     <label>
  16. <input type="submit" name="enviar" value="Enviar" id="envcrearcont">
  17. </label>
  18.   </p>
  19. </form>
  20. <div id="resultado"></div>

AJAX
Código Javascript:
Ver original
  1. function objetoAjax(){
  2.     var xmlhttp=false;
  3.     try {
  4.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.     } catch (e) {
  6.         try {
  7.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.         } catch (E) {
  9.             xmlhttp = false;
  10.         }
  11.     }
  12.  
  13.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.         xmlhttp = new XMLHttpRequest();
  15.     }
  16.     return xmlhttp;
  17. }
  18. function enviarDatosContenido(){
  19.     //donde se mostrará lo resultados
  20.     divResultado = document.getElementById('resultado');
  21.     //valores de los inputs
  22.     tit=document.nuevo_contenido.titulo.value;
  23.     con=document.nuevo_contenido.contenido.value;
  24.     pad=document.nuevo_contenido.padre.value;
  25.    
  26.     //instanciamos el objetoAjax
  27.     ajax=objetoAjax();
  28.     //uso del metodo POST
  29.     //archivo que realizará la operacion
  30.     //registro.php
  31.     ajax.open("POST", "registro.php",true);
  32.     ajax.onreadystatechange=function() {
  33.         if (ajax.readyState==4) {
  34.             //mostrar resultados en esta capa
  35.             divResultado.innerHTML = ajax.responseText
  36.             //llamar a funcion para limpiar los inputs
  37.             LimpiarCampos();
  38.         }
  39.     }
  40.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  41.     //enviando los valores
  42.     ajax.send("titulo="+tit+"&contenido="+con+"&padre="+pad)
  43. }
  44.  
  45. function LimpiarCampos(){
  46.     document.nuevo_contenido.titulo.value="";
  47.     document.nuevo_contenido.prototype.value="";
  48.     document.nuevo_contenido.padre.value="";
  49. }

¿Alguien podría decirme a que se debe?
Muchas gracias de antemano.