• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ajax, immer nur geänderte Werte anzeigen lassen

erdmulch

Mitglied
hallo zusammen, ich bin gerade dabei Ajax zu programmieren, was auch sehr gut funktioniert.
nun habe ich folgendes Problem:
die daten werden aktualisiert dargestellt allerdings werden die Daten doppelt angezeigt.
d.h. wenn ich die Seite aufrufe steht folgendes drin:
"Ajax, erster Aufruf"
wenn ich auf den Button aktualisieren gehe erscheint folgende Meldung:
"Ajax, erster Aufruf"
"Ajax, erster Aufruf"
gibt es eine Möglichkeit, dass immer nur der aktuelle Wert angezeigt wird?
vielen Dank im voraus
 
Werbung:
ok, sorry, ne Glaskugel, wäre aber manchmal für alle beteiligte das Beste :-)
ok, stellen wir uns eine html seite vor auf der nur ein Wert angezeigt wird z.B eine Temperatur und die einen Button "aktualisieren" enthält.
Ich rufe die html Seite auf, es erscheint folgendes:
25°C angenommen, ich rufe die Seite Mittags um 12Uhr auf, dann wird auf der Seite der aktuellen Wert von 25°C angezeigt was auch zu diesem Zeitpunkt richtig
ist. Nun würde ich aber gerne die Temperatur 2 Stunden später auslesen. Jetzt könnte ich natürlich die html Seite erneut aufrufen, oder aber ich benutze
einen Button und sage aktualisieren. Wenn alles gut geht sollte jetzt z.B 23°C erscheinen.

in meinem Fall funktioniert meine Ajax Anwendung problemlos.
Allerdings erscheint nach einem Klick auf den Button "aktualisieren"
25°C
23°C

eigentlich sollte nur noch der Wert 23°C erscheinen
gibt es eine Möglichkeit die html Seite zu "löschen" sodass nur noch der aktuelle Wert auf meiner html Seite erscheint?
 
Werbung:
Ohne Code ist das schwer zu sagen. Aber normalerweise reicht Folgendes zu machen:

PHP:
var ajaxCallback = function () {
    document.getElement(***).value = neueTemperatur;
};

statt

+= neueTemperatur.
 
Bisher hatte ich es so realisiert, was aber nicht den gewünschten Erfolg hatte:
Code:
  function handleContent()  
{  
    if (xmlHttpObject.readyState == 4)  
    {  
        document.getElementById('myContent').innerHTML = xmlHttpObject.responseText;  
        document.deleteElementByID('myContent')   
    }  
}
 
mehr code... deleteElementByID kenn ich nicht und document.getElementById('myContent').innerHTML = xmlHttpObject.responseText; macht exakt das gewünschte.
 
Werbung:
eigentlich ist es nicht mehr code.
ich weiß auch nicht ob das "document.deleteElementByID('myContent')"
das richtige ist bzw. wie man so etwas macht
 
und uneigentlich? mehr code...

deleteElementByID gibt es nicht! document.getElementById('myContent').innerHTML = "a"; macht genau das was du möchtest. es ersetzt allen inhalt in <div id="myContent"></div> mit "a";


<div id="myContent">b</div>
-> document.getElementById('myContent').innerHTML = "a";
-> <div id="myContent">a</div>
 
Werbung:
Hallo zusammen, habe nun den gesammten code eingestellt, bin mir aber nicht sicher, ob es der übersichtlichkeit hilft. Es handelt sich um eine Python Anwendung mit einem Django Webframework. mit dieser html Seite werden immer die aktuallesten werte aus der Datenbank gelesen. Leider ist es so, dass wenn die Seite aufgerufen wird der Wert z.B 25°C ausgelesen wird nach einer Sekunde aktualisiert sich die Seite, dann erscheint der dert 25°C 23°C eigentlich sollte aber nur noch 23°C erscheinen kann mir jemand sagen wie ich die 25°C wieder löschen kann?
Code:
    var xmlHttpObject = false;  if (typeof XMLHttpRequest != 'undefined')   {      xmlHttpObject = new XMLHttpRequest();  } if (!xmlHttpObject)    {      try       {          xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");      }      catch(e)       {          try           {              xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");          }          catch(e)           {              xmlHttpObject = null;          }      }  }  function loadContent()   {      xmlHttpObject.open('get', " url /home/peter/tmp/djangoprojs/Wetterstation/Wetterstation/articles.views.index ", true);      xmlHttpObject.onreadystatechange = handleContent;      xmlHttpObject.send();      return false;  }   function handleContent()  {      if (xmlHttpObject.readyState == 4)      {          document.getElementById('myContent').innerHTML = xmlHttpObject.responseText;      }  }  setInterval("loadContent();", 1000);
allerdings musste ich nun meine html seite ausklammern, da dies hier nicht angezeigt werden kann. es handelt sich aber um eine schleife bei der die Werte aus der Datenbank gelesen werden. im der letzte Eintrag von der Datenbank wird ausgelesen
 
Hallo zusammen,

habe nun den gesammten code eingestellt, bin mir aber nicht sicher, ob es der übersichtlichkeit hilft.
Es handelt sich um eine Python Anwendung mit einem Django Webframework.
mit dieser html Seite werden immer die aktuallesten werte aus der Datenbank gelesen.
Leider ist es so, dass wenn die Seite aufgerufen wird der Wert z.B 25°C ausgelesen wird
nach einer Sekunde aktualisiert sich die Seite, dann erscheint der dert
25°C
23°C
eigentlich sollte aber nur noch 23°C erscheinen
kann mir jemand sagen wie ich die 25°C wieder löschen kann?
Code:
var xmlHttpObject = false; 
if (typeof XMLHttpRequest != 'undefined')  
{ 
    xmlHttpObject = new XMLHttpRequest(); 
} if (!xmlHttpObject) 
  { 
    try  
    { 
        xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch(e)  
    { 
        try  
        { 
            xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(e)  
        { 
            xmlHttpObject = null; 
        } 
    } 
} 
function loadContent()  
{ 
    xmlHttpObject.open('get', " url /home/peter/tmp/djangoprojs/Wetterstation/Wetterstation/articles.views.index ", true); 
    xmlHttpObject.onreadystatechange = handleContent; 
    xmlHttpObject.send(); 
    return false; 
} 
 function handleContent() 
{ 
    if (xmlHttpObject.readyState == 4) 
    { 
        document.getElementById('myContent').innerHTML = xmlHttpObject.responseText; 
    } 
} 
setInterval("loadContent();", 1000);
allerdings musste ich nun meine html seite ausklammern, da dies hier nicht angezeigt werden kann. es handelt sich aber um eine schleife bei der die Werte aus der Datenbank gelesen werden. im der letzte Eintrag von der Datenbank wird ausgelesen
 
Werbung:
meiner Ansicht nach müsste es an diesen Zeilen liegen:
Code:
{% for article in latest_articles_list %} 

 
    {{ article.title }}
 
{%endfor%}
ich weiß allerdings nicht was ich falsch mache
achja, kann mir jemand sagen wie ich mein Programmcode in das Forum stelle ohne dass ich immer nach jeder zeile Ein "br" machen muss?
 
hehe, das kommt mir bekannt vor. ich sagte ja... mehr code, vollständigkeit ;)
hast du vllt noch die abfrage de letzten 5 einträge in der views stehen?


Code:
[COLOR=#808080][I]#!/usr/bin/env python[/I][/COLOR]
[COLOR=#808080][I]#-*- coding: utf-8 -*-[/I][/COLOR]



[COLOR=#ff7700][B]from[/B][/COLOR] django.[COLOR=black]template[/COLOR] [COLOR=#ff7700][B]import[/B][/COLOR] Context, loader
[COLOR=#ff7700][B]from[/B][/COLOR] django.[COLOR=black]http[/COLOR] [COLOR=#ff7700][B]import[/B][/COLOR] HttpResponse
[COLOR=#ff7700][B]from[/B][/COLOR] django.[COLOR=black]shortcuts[/COLOR] [COLOR=#ff7700][B]import[/B][/COLOR] render_to_response
[COLOR=#ff7700][B]from[/B][/COLOR] django.[COLOR=black]template[/COLOR].[COLOR=black]response[/COLOR] [COLOR=#ff7700][B]import[/B][/COLOR] TemplateResponse
[COLOR=#ff7700][B]from[/B][/COLOR] Wetterstation.[COLOR=black]articles[/COLOR].[COLOR=black]models[/COLOR] [COLOR=#ff7700][B]import[/B][/COLOR] Article, Talkback
[COLOR=#ff7700][B]from[/B][/COLOR] django.[COLOR=black]shortcuts[/COLOR] [COLOR=#ff7700][B]import[/B][/COLOR] render


[COLOR=#ff7700][B]def[/B][/COLOR] index[COLOR=black]([/COLOR]request[COLOR=black])[/COLOR]:
    [COLOR=#483d8b]"Create a list of the 5 latest articles"[/COLOR]
    latest_articles_list = Article.[COLOR=black]objects[/COLOR].[COLOR=#008000]all[/COLOR][COLOR=black]([/COLOR][COLOR=black])[/COLOR].[COLOR=black]order_by[/COLOR][COLOR=black]([/COLOR][COLOR=#483d8b]'-pub_date'[/COLOR][COLOR=black])[/COLOR][COLOR=black][[/COLOR]:[COLOR=#ff4500]5[/COLOR][COLOR=black]][/COLOR]
    [COLOR=#ff7700][B]return[/B][/COLOR] render[COLOR=black]([/COLOR]request, [COLOR=#483d8b]'articles.html'[/COLOR], [COLOR=black]{[/COLOR][COLOR=#483d8b]'latest_articles_list'[/COLOR]: latest_articles_list,[COLOR=black]}[/COLOR][COLOR=black])[/COLOR]
http://www.python-forum.de/viewtopic.php?t=30458&p=232174
 
Werbung:
nein, ich hatte ein ">" zuviel
kennst du dich mit Python aus?
wollte jetzt einfach mal ein Bild auf meiner Homepage darstellen. Aber irgendwie funktioniert dies auch nicht :-(
Ich dachte eigentlich, dass ich da nur den Pfad angeben muss, aber irgendwie funktioniert das nicht ganz so.
vielleicht kann mir jemand weiterhelfen

vielen Dank
 
professioneller troll?
DoNotFeedTroll.png
 
Werbung:
Zurück
Oben