PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenzellen vordefinieren



Ravetracer
19-09-2006, 07:47
Hallo.
Gibt es eine Möglichkeit den Inhalt von Zellen in einer Tabelle durch eine
andere HTML-Seite zu beschreiben?
Ich möchte ein tabellenbasiertes Layout erstellen und die Zellen der Tabelle
sollten dynamisch geändert werden, oder gibt es eventuell noch anderen Möglichkeiten.
Frames und IFrames sind tabu. (vom Projektauftrag her schon)

nEox
19-09-2006, 11:13
Hallo Christian,

um dynamisch Änderungen an deiner Seite vorzunehmen kannst du JavaScript (http://de.selfhtml.org/javascript/) verwenden.

Über das Document Object Model (DOM) kannst du mit Javascript dein komplettes HTML umschreiben.

Eine weitere Möglichkeit dynamisch Bereiche zu ändern wäre CSS.
Hier ein Beispiel:
http://www.css-technik.de/css-examples/160_9/bildermenu.html

Um dir besser helfen zu können, müsstest du uns mehr Infos geben.

Grüße,
nEox

Ravetracer
19-09-2006, 15:22
Danke erstmal für die Antwort. Die CSS-Sache sieht schon ganz interessant aus.

Nun ein paar Info's mehr:

Programmiert wird in HTML/PHP/MYSQL
Ich soll einen Urlaubsplaner für unsere Firma schreiben, und zwar webbasiert.
Es gibt ein User- und ein Administratormodul. Diese Module werden über ein Menü
aufgerufen, das ist aber kein Problem.

Im Adminmodul befinden sich weitere Untermodule wie "neue Anträge", "Übersicht", "Fehlzeiten verwalten" usw.
Um nicht jedes mal eine neue Seite zu laden, in der das jeweilige Modul läuft, möchte
ich gern eine Tabelle erstellen, in der ein bestimmtes Modul in einer Zelle ausgeführt
wird.
Das wechseln der Module soll über Buttons oder vielleicht auch Links geschehen.

Ich versuche das mal irgendwie darzustellen:

ADMIN -> Fehlzeiten
-> Übersicht
-> Neue Anträge verwalten

USER -> Antrag eingeben
-> Eigene Übersicht
-> Gruppenübersicht

(hier kleine Beispiele, das Programm umfaßt später noch mehr Module)

Ziel wären 2 Module mit je einer Funktionsklasse, in der die Untermodule definiert
sind. Restliche Klassen würden sich nun auf die MySQL-Kommunikation noch
beziehen.

Ich hoffe, dass die Informationen nun etwas erklärender sind.
Mit Javascript habe ich leider sehr wenig Erfahrung, werde mich damit auch mal
beschäftigen, aber ich möchte auch das Projekt weiter voranbringen.

nEox
19-09-2006, 18:15
Hallo,


Um nicht jedes mal eine neue Seite zu laden, in der das jeweilige Modul läuft, möchte
ich gern eine Tabelle erstellen, in der ein bestimmtes Modul in einer Zelle ausgeführt
wird.
Stichwort AJAX (http://de.wikipedia.org/wiki/Ajax_%28Programmierung%29).
Damit kannst du Bereiche deiner Seite dynamisch nachladen.

Ich kann dir hier das mootoolkit empfehlen:
http://moofx.mad4milk.net/
Hier eine Einführung zu den Effekten:
http://www.ajax-info.de/moo-fx-tutorial
Hier eine Einführung zu moo.ajax:
http://www.mad4milk.net/entry/moo.ajax

Und zu guter letzt, die Doku: ;)
http://moofx.mad4milk.net/documentation/

Zugegeben, viele Links. Vor allem mit wenig Javascript Erfahrung ist es am Anfang evtl. schwer zu verdauen. Die Beispiele in den Links sind allerdings sehr gut und IMO einfach zu verstehen. Es lohnt sich das anzusehen!

Wenn du Fragen hast frag einfach. ;)

Grüße,
nEox

Pingu
19-09-2006, 19:30
Ich habe vorerst ein paar Kommentare:
Vergiß das Tabellen-Layout. Das braucht kein Mensch.
Du kannst, wie vorgeschlagen, einiges über AJAX realisieren. Dies könnte eine schöne Lösung werden. Aber unterschätze den Aufwand nicht. Denn eine Lösung in AJAX bedeuted, dass Du alles doppelt machst. Denn Du mußt auf der Server-Seite die API realisieren und dann entsprechend die Client-Seite. Hierbei könnte man sich fragen, warum die Server-Seite die Daten dann nicht gleich in XHTML ausgibt. Vorteil: Du kommst schneller zum Ziel. AJAX wäre dann die High-End-Variante.
Worin liegt der so große Vorteil, wenn das Menü nicht neugeladen wird? Die Hauptteil der Formatierung soll doch eh in CSS erfolgen. Diese Seiten liegen eh im Cache des Browsers. Zum Beispiel hier: [gelöscht] (ist noch in Arbeit, viele Details fehlen noch) im Vergleich zur aktuellen [gelöscht] wesentlich übersichtlicher (vom Quellcode her) durch die konsequente Vermeidung von Tabellen und die konsequente Verwendung von CSS.

Die Frames kann man übrigens auf dem Server nachbilden indem man z.B. eine Portal-Seite realisiert, die den Rahmen baut. Diese muss nicht unbedingt sichtbar sein, das kann man relativ einfach über die .htaccess lösen. Das wird seit Jahren bei unserer jetzigen Site so schon gemacht. Dies empfiehlt sich sowieso, wenn man Zugangsrechte realisieren möchte.

Übrigens auch meine private Website http://www.pingu.info ist ganz ohne Tabellen nur mit Hilfe von CSS realisiert.

Pingu

PS: Obige Links werde ich die nächsten Tage wieder löschen.

nEox
19-09-2006, 20:06
Hallo Pingu,


...Aber unterschätze den Aufwand nicht. Denn eine Lösung in AJAX bedeuted, dass Du alles doppelt machst. Denn Du mußt auf der Server-Seite die API realisieren und dann entsprechend die Client-Seite...
wieso alles doppelt machen? Imo geht die Programmierung kaum langsamer wenn man ein passendes Framework verwendet. Hier ein leicht angepasstes Code-Stück aus einem Beispiel von den Links (siehe vorletzen Post):


<div id="myelementid"></div>

<a href="#" onclick="new ajax ('irgendein.php', {update: $('myelementid')});">Tue irgendwas</a>

Ein Klick auf "Tue irgendwas" und schon wird die Ausgabe von "irgendein.php" in den Layer "myelementid" geschrieben. Die Ausgabe kann ja gleich XHTML sein - den Umweg über XML ist ja nicht zwingend vorgeschrieben.

Sonst stimme ich dir vollkommen zu :)

Grüße,
nEox

Pingu
19-09-2006, 22:04
OK, das wäre eine Möglichkeit. Das wäre dann praktisch eine 1:1-Abbildung der klassischen iFrames. Aber dafür braucht man kein AJAX, meine Meinung.
Die Anwendung von AJAX so wie es hier im Forum macht mehr Sinn. Noch ein Schritt besser wäre es, wenn z.B. TinyMCE <http://tinymce.moxiecode.com/> zusätzlich hier im Forum integriert wäre. Das sind Anwendungen wofür ich AJAX super finde. Oder solche Sachen wie bei digg.com (Digg-Spy). Oder die verschiedene Email-Clients, die gerade entstehen.

Aber wie bei jeder Technologie gilt auch hier, man sollte sich selbst darüber kalr werden wo was sinnvoll einzusetzen ist und wo es überflüssig ist.


Pingu

Ravetracer
20-09-2006, 07:54
Die Links sind interessant, aber ich muss gestehen, dass ich keine Ahnung von AJAX habe.
Beim WIKI hab' ich gelesen, dass da Serverseitig was gemacht werden muss :confused: .
Das geht leider nicht.
Ich bin nun kein professioneller Webentwickler und kann mich für das Projekt
auch nur auf PHP/MYSQL/HTML beschränken.
Es gibt in unserer Firma ein webbasiertes Auftrags- und Informationssystem (wais), welches von meinem Kollegen seit etwa 2000 entwickelt wird.
Ich selbst bin erst seit letzten Oktober hier angestellt und hab' natürlich nicht
die Geschichte des Programms mitbekommen und muss erstmal mit meinem
Kollegen darüber beraten.
Fakt ist, dass mein Urlaubsplaner in das WAIS-Projekt integriert werden muss.
Ich baue quasi nur Module dafür. Der Webserver ist im großen und ganzen LAMP.
Gut, mein Kollege hat auch einiges mit Javascript realisiert (das Menü z.B.), aber ich bin da eben noch unerfahren drin.
Leider fehlt oft auch die Zeit für Besprechungen und Erklärungen, da wir nebenbei auch die Sysadmin's sind und entsprechende Aufgaben zusätzlich
wahrnemen müssen.
Aber wie dem auch sei, ich werde mir wohl Javascript mal genauer unter die
Lupe nehmen müssen. Es soll ja auf den gleichen Scriptstandard wie PHP basieren, und PHP kann ich ja.
Erstmal danke für eure Hilfe.

/edit:

@Pingu:
Die private Seite sieht gut aus. CSS ist glaube schon eine Überlegung wert.