Ver Mensaje Individual
  #9 (permalink)  
Antiguo 22/07/2011, 10:44
caguayo
 
Fecha de Ingreso: abril-2011
Mensajes: 41
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: ¿Que tiene de especial un textarea?

Esto es lo que he hecho...

Código Javascript:
Ver original
  1. function getXMLHTTP() {
  2.  
  3.         var xmlhttp = false;
  4.         if (window.XMLHttpRequest) { // Mozilla, Safari,...
  5.                 xmlhttp = new XMLHttpRequest();
  6.  
  7.                 if (xmlhttp.overrideMimeType) {
  8.                         xmlhttp.overrideMimeType('text/xml');
  9.                 }
  10.         } else if (window.ActiveXObject) { // IE
  11.                 try {
  12.                         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  13.                 } catch (e) {
  14.                         try {
  15.                                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  16.                         } catch (e) {}
  17.                 }
  18.         }
  19.         return xmlhttp;
  20. }
  21.  
  22. function anadirReg(str, id) {
  23.         xmlhttp = getXMLHTTP();
  24.         xmlhttp.onreadystatechange = buscarReg;
  25.  
  26.         if (document.getElementById('ing').value.length == 0) {
  27.                 alert("Por favor, debe añadir la gestión realizada");
  28.                 document.getElementById('ing').focus();
  29.                 return 0;
  30.         }
  31.  
  32.         var gestion = new Date() + "/// " + document.getElementById('ing').value;
  33.         xmlhttp.open("POST","gestion_comercial.php?titular=" + str + '&gestion=' + gestion,true);
  34.         xmlhttp.send();
  35.         limpiarCampo('ing');
  36. }
  37.  
  38. function buscarReg() {
  39.         if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  40.         var xml = xmlhttp.responseXML.documentElement;
  41.         var gest = xml.getElementsByTagName('gestiones');
  42.         var textArea = document.getElementById('gest');
  43.         //textArea.value = "";
  44.                 for (i = 0; i < gest.length; i++) {
  45.                          var gestiones = gest[i].firstChild.data;
  46.                          textArea.innerHTML += gestiones + "\n";
  47.                 }
  48. }


Que he logrado:
1- Ya me añade en el textarea la gestión.

Ahora solo me queda resolver algunos detalles, como:
1- En IE y Firefox siempre me añade la nueva gestión+las ya presentes en el textarea. O sea, está duplicando lo que hay en el textarea.
2- Me muestra la nueva gestión al final. Yo, mediante php le hice un 'ORDER BY <campo_fecha_ultima_actualizacion> DESC' y supongo que así mismo la "publica"
en XML el archivo php.
3- En IE me muesta el contenido en el textarea desordenado, en Firefox me muestra el contenido ordenado. Esto es, una línea para cada gestión.

Parte de mi archivo php y lo relacionado con la consulta y el XML, es lo siguiente...

Código PHP:
Ver original
  1. $result = mysql_query("SELECT EFID28 FROM titulares WHERE refer='$titular' ORDER BY timestamp_last_change DESC");
  2.  
  3. while ($row = mysql_fetch_array($result)) {
  4.        $valores[] = $row['EFID28'];
  5. }
  6.  
  7. $xml .= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
  8. $xml .= "<informacion>\n";
  9. for($x=0 ; $x<count($valores) ; $x++) {
  10.      $xml .= "<gestiones>" . $valores[$x] . "</gestiones>\n";
  11. }
  12. $xml .= "</informacion>";
  13. echo $xml;
  14.  
  15. mysql_close($link);
  16. ?>

Según experiencia... ¿es mejor generar el contenido XML en un archivo aparte o directamente obtenerlo del archivo php?