Andi123: AJAX - wie gebe ich den response aus?

AJAX ist ja in aller Munde und so wollte ich das gern auch fuer meine Webseite mal ausprobieren.

Zwei Sachen. Einmal frage ich eine DB ab, ob ein bestimmter Wert enthalten ist. Das funktioniert auch alles soweit und ich kann mit
alert (http_request.responseText);
mir auch ein Ergebnis anzeigen lassen.
Nun wollte ich das Ergebnis aber nicht mit einem "alert" ausgeben, sondern auf der Seite am besten mit document.write an der richtigen Stelle.
Dazu habe ich erst mit
ausgabe=http_request.responseText;
eine Variable belegt.
Nur erscheint dann bei
<script type="text/javascript">
document.write (ausgabe);
</script>

keine Ausgabe. Wo koennte der Fehler liegen?

Und dann wollte ich gern eine Funktionalitaet wie bei googlesuggestion (http://www.google.com/webhp?complete=1&hl=en) nachbauen.
Ein Nutzer gibt etwas ein und eine Auswahlliste erscheint.
Gibt es dazu irgendwo Codeschnippsel, wo ich mir das abschauen kann?

Danke Andi

  1. Hallo,

    Dazu habe ich erst mit
    ausgabe=http_request.responseText;
    eine Variable belegt.
    Nur erscheint dann bei
    <script type="text/javascript">
    document.write (ausgabe);
    </script>

    keine Ausgabe. Wo koennte der Fehler liegen?

    document.write funktioniert nur, WÄHREND deine Seite noch am sich-aufbauen ist. Danach öffnet document.write ein neues Dokument.
    Um an einem bereits geladenen Dokument etwas per JS zu verändern solltest du die innerHTML-Eigenschaft eines HTML-Elements nützen, oder, falls etwas moderner & konformer sein soll, die append-Child-Methode.

    Gruesse,
    Joerg

    1. hi,

      document.write funktioniert nur, WÄHREND deine Seite noch am sich-aufbauen ist. Danach öffnet document.write ein neues Dokument.

      Dass bei seinem Beispiel aber gar keine Ausgabe erfolgt, dürfte vermutlich eher daran liegen, dass ausgabe der Wert noch gar nicht zugewiesen wurde zu dem zeitpunkt, wo er versucht es mit document.write auszugeben.

      Mein Rat: Erst mal generell ein wenig mehr mit Javascript an sich beschäftigen, mit den Möglichkeiten etc. - und nicht gleich auf das Hype-Wort AJAX stürzen ...

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Mein Rat: Erst mal generell ein wenig mehr mit Javascript an sich beschäftigen, mit den Möglichkeiten etc. - und nicht gleich auf das Hype-Wort AJAX stürzen ...

        Hm, ist ne schoene Sache mit dem AJAX, nicht nur des Hypes wegen.

        Was empfehlt ihr, wie die Ausgabe erfolgen koennte.
        Ich bekomme einen Response und wuerde diesen gern in mein vorhandenes Layout  einbinden. Ohne "alert()".

        Danke Andi

        1. Hallo,

          Was empfehlt ihr, wie die Ausgabe erfolgen koennte.
          Ich bekomme einen Response und wuerde diesen gern in mein vorhandenes Layout  einbinden. Ohne "alert()".

          Wir Jörg schon geschrieben hat. Mit innerHTML oder der Node-Geschichte.
          Einfaches Beispiel mit innerHTML (oder auch innerText)

          ausgabe=http_request.responseText;
          document.getElementById('irgendEinDiv').innerHTML = '<b>' + ausgabe + '</b>';

          oder
          document.getElementById('nAnderesDiv').innerTEXT = ausgabe;

          Bei der DOM-Syntax muss man sich schon etwas länger beschäftigen:
          So ungefähr..
          bold = document.createElement('b');
          txt  = document.createTextNode(ausgabe);
          bold.appendChild(txt);
          document.getElementById('irgendEinDiv').appendChild(bold);

          Der Quelltext ist auf die schnelle geschrieben. Bin mir bzgl. der Syntax jetzt nicht ganz sicher. Steht aber alles in SelfHTML.

          Schöne Grüße
          Axel

          1. Der Quelltext ist auf die schnelle geschrieben. Bin mir bzgl. der Syntax jetzt nicht ganz sicher. Steht aber alles in SelfHTML.

            Ah okay. Da werd ich mich mal dran versuchen.

            Vielen Dank fuer eure Hilfe!!!