suleiman: Wie dynamischen Kontent erstellen ?

Hey ho,

Ich brauch mal wieder Wegweiser für mein Vorhaben. Ich habe gelesen dass man HTML-Seite manipulieren kann, nur wie? Wäre schön wenn Ihr mir ein paar Anleitungen zeigen könnt. Ohne gleich ein Spiel bauen zu müssen und ohne Arrays wenn möglich.

Konkret: Ich möchte eine Tabelle aus meiner Datenbank auslesen und im Hauptbereich anzeigen lassen. Es gib mehrere Einträge in der Tabelle und ich möchte immer nur eine Zeile pro Seite angezeigt bekommen. Mit zwei Submit-Buttons möchte ich zwischen den Zeilen/Seiten wechseln können. Ich kann die Daten Phrasen und in fast jede Datei parken, aber ich weiß nicht wie ich dynamischen Kontent in HTML erstellen kann.

Wie muß mein Grund-Gerüst aussehen ?


<body>

<main id="main">
</main>

</body>`

Wie muß ich die Daten bereit stellen ?

<?xml version="1.0"?>

<resultset statement="select * from relay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <row>
	<field name="ID">1</field>
	<field name="01_on">01:00:00</field>
	<field name="01_off">01:01:00</field>
	<field name="02_on">02:00:00</field>
	<field name="02_off">02:02:00</field>
	<field name="03_on">03:00:00</field>
	<field name="03_off">03:03:00</field>
  </row>

  <row>
	<field name="ID">2</field>
	<field name="01_on">09:00:00</field>
	<field name="01_off">09:05:00</field>
	<field name="02_on">10:00:00</field>
	<field name="02_off">10:05:00</field>
	<field name="03_on">11:00:00</field>
	<field name="03_off">11:05:00</field>
  </row>

usw ...

Ich möchte nun in z.B. <main id="main"></main> nur die Daten in Row1 angezeigt bekommen und wenn ich dann auf <button> klicke dann soll nur der Inhalt von Row2 angezeigt werden.

Wie kann man sowas machen, ohne jedes mal die Seite neu zu laden ?

Geht sowas mit Java ? Wie, wenn ja ?

Muß ich auf XHTML umstellen und meine HTMLs in XML rein schreiben ?

Ich seh den Wald vor lauter Bäumen nicht xD

Nachtrag: Ich sollte noch erwähnen dass der Text am besten in Text-Feldern aufgelistet werden soll, damit ich ihn bearbeiten kann. Wie eine Form funktioniert weiß ich. Es geht mir nur um dass bereit stellen der Daten.

  1. Hello,

    Wie kann man sowas machen, ohne jedes mal die Seite neu zu laden?

    Z. B. mit X(ML)http-Requests (AJAX) und einem aktiven serverseitigen Backend. Die Sprache, die das Backend benutzt, ist egal, hauptsache, der Webserver kann die aktiven Teile einbinden.

    Liebe Grüße
    Tom S.

    --
    Die Krawatte ist das Kopftuch des Westens
    1. Joa danke, das scheint der richtige Weg zu sein. Jetzt muß ich aber erst mal raus finden wie ich nur Daten an den Client sende, ohne gleich die ganze HTML zu versenden. Das kann ich leider hier nicht klären (Stichwort Bash-CGI).

  2. Hallo

    Deine Aufgabe mit der Tabelle lässt sich beschreiben als: Zeige mittels CSS nur die Tabellen-Header Zeile und eine selektierte Zeile. Man kann mit CSS ganz einfach ganze Tabellen-zeilen ausblenden. Allerdings braucht in in deinem Fall auch etwas Automatic, Javascript. Mit JS kannst du über Button-Click eine css-klasse in die gewählte Zeile schreiben.

    Ob man das Anzeigen einer einzigen Tabellenzeile nur mit css allein erreichen kann, ist mir unbekannt. In einem anderen Thread wurde erwähnt, dass man via Radiobuttons zum Beispiel exklusiv ein Galleriebild anzeigen kann. Meine Fantasie besagt da aber das mit CSS allein auf Tabellen anzuwenden.

    Du solltest dich also mit folgenden Themen mal beschäftigen: -mit Javascript (oder jquery) Klassen setzen und löschen -mit CSS Klassenabhängig Elemente aus/ein-blenden -und natürlich mit der HTML-Tabellen-Struktur solltest du dich befassen.

  3. Tach!

    Ich brauch mal wieder Wegweiser für mein Vorhaben. Ich habe gelesen dass man HTML-Seite manipulieren kann, nur wie? Wäre schön wenn Ihr mir ein paar Anleitungen zeigen könnt. Ohne gleich ein Spiel bauen zu müssen und ohne Arrays wenn möglich.

    Die Techniken zum HTML-Manipulieren sind in Spielen keine anderen als in anderen Anwendungsfällen. DU kannst also auch mit dem Spiel-Tutorial die Grundlagen erlernen.

    Konkret: Ich möchte eine Tabelle aus meiner Datenbank auslesen und im Hauptbereich anzeigen lassen. Es gib mehrere Einträge in der Tabelle und ich möchte immer nur eine Zeile pro Seite angezeigt bekommen. Mit zwei Submit-Buttons möchte ich zwischen den Zeilen/Seiten wechseln können.

    Dazu braucht es im Prinzip keine clientseitigen Techniken. Das geht mit statischem HTML genausogut. Welche Beweggründe hast du, dass das clientseitig ohne Seitenwechsel ablaufen soll?

    Auf alle Fälle müssen die Daten zum Client gelangen, und wenn du sowieso auf dem Server eine Programmierung zur Abfrage hast, kannst du da statt Rohdaten auch fertige HTML-Seiten zum Client schicken.

    Wie muß mein Grund-Gerüst aussehen ?

    HTML ist HTML, egal ob statisch oder manipuliert.

    dedlfix.

    1. Die Techniken zum HTML-Manipulieren sind in Spielen keine anderen als in anderen Anwendungsfällen. DU kannst also auch mit dem Spiel-Tutorial die Grundlagen erlernen.

      Ok, dann werde ich mal das Spiel nachbauen.

      Dazu braucht es im Prinzip keine clientseitigen Techniken. Das geht mit statischem HTML genausogut. Welche Beweggründe hast du, dass das clientseitig ohne Seitenwechsel ablaufen soll?

      Es ist nur ein Test, damit ich was lerne. Die Seiten ohne dynamischen Inhalt aufbauen ist kein Problem. Mein Ziel ist es ein interaktives dropdown-Menü einzubauen, welches wiederum von DB-Einträgen (Datum, Produkte, usw..) bestimmt wird und ein Teil meiner nav-Leiste sein soll.

      PS. Da ich noch im Aufbau bzw. am Testen bin, gibt es keine Verbindung zu meinem Server atm! Konkret: Sicherheitsaspekte stehen erst mal hinten an.

      1. Tach!

        Welche Beweggründe hast du, dass das clientseitig ohne Seitenwechsel ablaufen soll? Es ist nur ein Test, damit ich was lerne. Die Seiten ohne dynamischen Inhalt aufbauen ist kein Problem. Mein Ziel ist es ein interaktives dropdown-Menü einzubauen, welches wiederum von DB-Einträgen (Datum, Produkte, usw..) bestimmt wird und ein Teil meine nav-Leiste sein soll.

        Du möchtest also eine so genannten SPA (Single Page Application) entwicklen. Natürlich kannst du das zu Fuß machen, und das ist für den Anfang gar nicht mal verkehrt, um die Grundlagen zu erlernen. In einem professionellen Umfeld würde man das eher nicht so machen wollen, weil es sehr aufwendig sein kann, jeden Aspekt selbst auszuprogrammieren. Da greift man dann gern auf Frameworks zurück, zum Beispiel Angular. Natürlich ist da auch Lernaufwand dabei, es macht aber einfach mehr Freude, damit zu arbeiten, als mit nackigem Javascript.

        dedlfix.

        1. Ich komm aus der Linux Server Welt und liebe Text-Adventures. Wiederum ganz auf SPA umstellen wollte ich nun auch nicht. Mir geht es nur um ein paar Einträge im Menü. Ich stell mir das nicht so kompliziert vor. Bevor ich fertige Frameworks, JQuerry, GitHub, usw nutze, wollte ich mich schon damit auseinander setzten.

          Wie auch immer, ich werde das Spiel jetzt erst erstellen und dann gucken wie mir das weiter hilft. Danke nochmals, für die Anregungen.

          PS. Falls es irgend welche gute Anleitungen gibt, dann bin ich nicht abgeneigt die zu lesen/lernen.

          1. Tach!

            PS. Falls es irgend welche gute Anleitungen gibt, dann bin ich nicht abgeneigt die zu lesen/lernen.

            Ob sie gut ist, weiß ich nicht, aber in Heise Developer ist grad eine Artikelserie zu Single-Page-Anwendungen Framework-unabhängig entwickeln. Das ist ja im Grunde genommen das, was du möchtest. Allerdings richtet sich das eher an Entwickler. Die Grundlagen zu HTML und dessen Manipulation mit Javascript setzt er voraus. Auch ansonsten sind recht viele Fachbegriffe drin. Vielleicht ist er ja trotzdem was für dich.

            dedlfix.

  4. Wie kann man sowas machen, ohne jedes mal die Seite neu zu laden ?

    Stichwort: Ajax. Wenn nicht die Seite, so werden nur Teile davon neu geladen, welche das sind, wäre zu überlegen: Tausche ich den ganzen <body> aus oder nur ein <form>…

    Die Antwort hängt davon ab, ob ich das Template dafür am Server fix und fertig ausfülle oder ob ich nur die Daten schicke und das Template im Browser render.

    @Beat: Schön Dich wieder hier zu haben!