Go Down

Topic: Problema con AJAX (Read 61 times) previous topic - next topic

pepejuan400

Hola!

A ver si me podéis ayudar con este problema:

Estoy intentando hacer un programa en Arduino que lea información a través de unos sensores y vaya mostrando los datos leídos en un servidor web montado en el propio Arduino, concretamente dentro de un "textarea" al clicar en un botón. Para que la actualización de los datos leídos sea correcta he usado AJAX, concretamente basándome en el código de la siguiente página web:

https://startingelectronics.org/tutorials/arduino/ethernet-shield-web-server-tutorial/AJAX-read-switches-analog/

Si no uso eso los datos no se actualizan, y siempre muestra el valor inicial de la variable que guarda las lecturas de cada sensor.

El problema viene en que al usar el código del enlace, en vez de mostrar solo el valor leído por el sensor, me imprime dentro del "textarea" dicho valor más todo el código HTML del servidor web. No tengo ni idea de por qué ocurre eso. He probado a cambiar el "textarea" por <div> y dentro un <p> como en el ejemplo, pero ocurre lo mismo. Aquí os dejo mi código:

Code: [Select]

if(HTTP_req.indexOf("muestra") > -1)
                    {
                        actualiza(client);
                    }

(...)
client.println("function muestra()");
                    client.println("{");
                    client.println("var request = new XMLHttpRequest();");
                    client.println("request.onreadystatechange = function() {");
                    client.println("if (this.readyState === 4) {");
                    client.println("if (this.status === 200) {");
                    client.println("if (this.responseText !== null) {");
                    client.print("document.getElementById('p').innerHTML = this.responseText;");
                    client.println("}}}};");
                    client.println("request.open('GET', 'muestra', true);");
                    client.println("request.send(null);");                   
                    client.print("setTimeout('muestra()', 1000);");
                    client.println("}");
(...)
client.println("<textarea rows='10' id='p' readonly></textarea>");
(...)
void actualiza(EthernetClient client)
{
  client.print(presion);
  client.println(" atm");
}


¡Gracias de antemano por vuestra ayuda!

surbyte

Y porque publicas un código parcializado?

Coloca todo el código para poder entenderlo en todo su contexto.

Go Up