Inhalt eines Rahmens verändern
Inhalt eines Rahmens verändern
am 21.06.2006 23:20:23 von MaPhyA
Schnell und schmerzlos:
Ich habe eine "Rahmen-Datei", deren Inhalte über mysql aus einer
Datenbank gesteuert werden.
Innerhalb dieses Rahmens wird der Inhalt (durch eine Liste von ca.
30-60 Personen, die auch durch die Datenbank erzeugt werden) erstellt.
################## Rahme#############
### Hier Rahmen ####### Da Rahmen ####
----------------------INHALT--------------------------------
|1. Person |
|2. Person |
|3. Person .... |
------------------------------------------------------------ -----
Zu jeder dieser Person (über die ID gesteuert) gib es beispiels weise
noch mehr Angaben, wie z.B. Strasse Hausnummer, ....
So nun das Problem:
Ich möchte ohne den Rahmen zu verändern die Angaben wie Strasse,
Wohnort etc zu der entsprechenden Person per Mausklick im Inhalt
angezeigt bekommen.
ich dachte da an soetwas für den Inhaltsbereich:
---schmutzig gedacht----
if (isset(PersonenID)
{ --- Gib die Angaben wie Wohnort etc. zu der angeklickten Person an -
ggf unset(PersonenID) um wieder zurück zur Liste zukommen. }
else
{
gib die Liste an
}
Wie kann ich einen Link "vortäuschen", der den Inhalt auf die Angaben:
Wohnort etc.
klappt ja nicht...
So ich hoffe, ich hab mich leicht verständlich ausgedrückt.....
Ralf
Re: Inhalt eines Rahmens verändern
am 21.06.2006 23:37:17 von Matthias Wuebbeling
MaPhyA wrote:
> Schnell und schmerzlos:
>
> Ich habe eine "Rahmen-Datei", deren Inhalte über mysql aus einer
> Datenbank gesteuert werden.
Also ein HTML Frameset?
> Innerhalb dieses Rahmens wird der Inhalt (durch eine Liste von ca.
> 30-60 Personen, die auch durch die Datenbank erzeugt werden) erstellt.
Die Personen _werden_ durch die Datenbank "erzeugt"? Du meinst die
Liste, oder besser die Daten, die durch die Datenbank bereitgestellt
werden, oder?
> ################## Rahme#############
> ### Hier Rahmen ####### Da Rahmen ####
Wenn es wirklich ein Frameset ist, überlege dir gut, ob es das ist, was
du willst. Im Moment gibt es nicht viel bei HTML (xHTML) was für
Framesets spricht. Ich will dich aber in dem Punkt nicht überzeugen,
aber dich anregen, das nochmals zu überdenken.
> Zu jeder dieser Person (über die ID gesteuert) gib es beispiels weise
> noch mehr Angaben, wie z.B. Strasse Hausnummer, ....
"Über die ID eindeutig festgelegt" hört sich besser an, als gesteuert.
> So nun das Problem:
> Ich möchte ohne den Rahmen zu verändern die Angaben wie Strasse,
> Wohnort etc zu der entsprechenden Person per Mausklick im Inhalt
> angezeigt bekommen.
Wenn ich dich richtig verstehe willst du den Rahmen nicht neu laden?
Dann suchst du glaube ich Javascript.
> ich dachte da an soetwas für den Inhaltsbereich:
> ---schmutzig gedacht----
>
> if (isset(PersonenID)
> { --- Gib die Angaben wie Wohnort etc. zu der angeklickten Person an -
> ggf unset(PersonenID) um wieder zurück zur Liste zukommen. }
> else
> {
> gib die Liste an
> }
Also willst du evtl. doch den Rahmen neu Laden? Dann mach es so. Du
brauchst ja nur an der Stelle, wo eine (beispielsweise über die URL
übergebene) id der id einer Person entspricht diese Infos hinzuzufügen.
> Wie kann ich einen Link "vortäuschen", der den Inhalt auf die Angaben:
> Wohnort etc.
Wieso vortäuschen? Nun doch nicht neu laden? Also doch Javascript?!
> klappt ja nicht...
Javascript:
Frame neu laden:
Dann in deiner Datei
$detailId = null;
if(isset($_GET['dailsId']) && is_numeric($_GET['detailsId'])){
$detailId = (int) $_GET['detailsId'];
}
// durchlaufe deine Liste und dabei:
if($personenDaten['id'] === $detailId){
// Zusatzinformationen
} else {
// gib eben die Liste an
}
Du kannst auch anhand der ersten "is_numeric" Bedingung prüfen, ob jemand
details wünscht und dort nur die Infos angeben. Habe nicht ganz sicher
verstanden, ob du allein die Details angeben willst, oder diese zusätzlich
mit zu den anderen Personendaten in der Liste anzeigen willst.
> So ich hoffe, ich hab mich leicht verständlich ausgedrückt.....
Verständlich schon, aber leider nicht präzise genug.
HTH und lieben Gruß,
Matze
Re: Inhalt eines Rahmens verändern
am 21.06.2006 23:43:17 von Matthias Wuebbeling
Habe vergessen, dich darauf hinzuweisen, dass es gern gesehen wird, wenn
man seinen realen Namen angibt. Das wirst du hier oft finden, macht also
so gut wie jeder.
Dies gilt in Newsgroups der de. Hierarchie als Höflichkeit und meist
verhält man sich ein wenig anders, wenn man nicht ganz anonym ist.
Falls du vor hast, häufiger hier vorbeizuschauen, dann lege ich dir u.a.
http://www.usenetverwaltung.org/netiquette/
und das ganze bei Wikipedia
http://de.wikipedia.org/wiki/Netiquette
ans Herz.
Lieben Gruß,
Matze
Re: Inhalt eines Rahmens verändern
am 22.06.2006 01:06:47 von do.not.REMOVETHAT
MaPhyA schrieb:
> Personen, die auch durch die Datenbank erzeugt werden
Bin *ich* besoffen oder das MaPhyA?
Grüße, Mat*wahrscheinlich beide*thias
Re: Inhalt eines Rahmens verändern
am 22.06.2006 15:30:08 von MaPhyA
Hallo Matthias,
vielen Dank für die schnelle Antwort und für die Tipps wie Netiquette
usw. Ich war so in Gedanken, wie ich das Problem das ich habe
beschreiben sollte, dass ich die üblichen Dinge vergessen habe.
Matthias Wuebbeling schrieb:
> MaPhyA wrote:
> > Schnell und schmerzlos:
> >
> > Ich habe eine "Rahmen-Datei", deren Inhalte über mysql aus einer
> > Datenbank gesteuert werden.
>
> Also ein HTML Frameset?
Nein. Die Datei, die angezeigt wird, besteht im wesentlichen aus
Tabellen. Der ,,Rahmen'' ist eine Tabelle, in der der Inhalt (wie z.B.
die Personenliste) innerhalb der Tabelle als Tabelle dargestellt wird.
>
> > Innerhalb dieses Rahmens wird der Inhalt (durch eine Liste von ca.
> > 30-60 Personen, die auch durch die Datenbank erzeugt werden) erstellt.
>
> Die Personen _werden_ durch die Datenbank "erzeugt"? Du meinst die
> Liste, oder besser die Daten, die durch die Datenbank bereitgestellt
> werden, oder?
Klar ist etwas schrecklich falsch formuliert. .... die auch durch die
Datenbank erzeugt WIRD .... wäre etwas besser.
> > ################## Rahme#############
> > ### Hier Rahmen ####### Da Rahmen ####
>
> Wenn es wirklich ein Frameset ist, überlege dir gut, ob es das ist, was
> du willst. Im Moment gibt es nicht viel bei HTML (xHTML) was für
> Framesets spricht. Ich will dich aber in dem Punkt nicht überzeugen,
> aber dich anregen, das nochmals zu überdenken.
>
> > Zu jeder dieser Person (über die ID gesteuert) gib es beispiels weise
> > noch mehr Angaben, wie z.B. Strasse Hausnummer, ....
>
> "Über die ID eindeutig festgelegt" hört sich besser an, als gesteuert.
Danke....
> > So nun das Problem:
> > Ich möchte ohne den Rahmen zu verändern die Angaben wie Strasse,
> > Wohnort etc zu der entsprechenden Person per Mausklick im Inhalt
> > angezeigt bekommen.
>
> Wenn ich dich richtig verstehe willst du den Rahmen nicht neu laden?
> Dann suchst du glaube ich Javascript.
>
> > ich dachte da an soetwas für den Inhaltsbereich:
> > ---schmutzig gedacht----
> >
> > if (isset(PersonenID)
> > { --- Gib die Angaben wie Wohnort etc. zu der angeklickten Person an -
> > ggf unset(PersonenID) um wieder zurück zur Liste zukommen. }
> > else
> > {
> > gib die Liste an
> > }
>
> > Wie kann ich einen Link "vortäuschen", der den Inhalt auf die Angaben:
> > Wohnort etc.
>
> Wieso vortäuschen? Nun doch nicht neu laden? Also doch Javascript?!
Ich meinte vortäuschen im Sinne von: Es soll so aussehen, ist aber
kein echter link
> > So ich hoffe, ich hab mich leicht verständlich ausgedrückt.....
>
> Verständlich schon, aber leider nicht präzise genug.
Meine Idee war folgende: Der Inhalt, der verändert werden soll ist
eine Tabelle in einer Tabelle.
Zunächst sollen in dieser Tabelle in der Tabelle nur die Namen
aufgelistet werden und alle mit einem Link versehen, der zu den
Zusatzinformationen zu der entsprechenden Person führt.
Klicke ich auf den Link, dann soll die Namensliste verschwinden und
dann die Zusatzinformationen wie Strasse PLZ Ort und so weiter
angezeigt werden.
Hab ich alles gelesen und verstanden soll wieder ein Link auftauchen
der zurück zur Namensliste führt.
Versuch es bildlich darzustellen: ### bedeutet die Begrenzung der
Rahmentabelle und ++++ die Begrenzung der Inhaltstabelle.
###########################
# Register A ## Register B #
#++++++++++++++++++++++#
# Hier die Namensliste oder +#
#+ die Personendetails +#
#++++++++++++++++++++++#
###########################
Vielen Dank für die vielen Anregungen und Tipps. Ich werde mich bessen
Ralf
Re: Inhalt eines Rahmens verändern
am 22.06.2006 16:03:55 von do.not.REMOVETHAT
Ha! Zusammen mit Deinem anderen Posting verstehe ich, worum es geht.
MaPhyA schrieb:
> if (isset(PersonenID)
> { --- Gib die Angaben wie Wohnort etc. zu der angeklickten Person an -
> ggf unset(PersonenID) um wieder zurück zur Liste zukommen. }
> else
> {
> gib die Liste an
> }
Genau so. Nur statt "isset(PersonenID)" solltest Du
"isset($_GET['pid'])" schreiben. Anschliessend innerhalb der "{}"
solltest Du die $_GET['pid'] noch mal plus 0 nehmen um sie sicher in
einen Integer zu wandeln. Dann kannst Du eine DB-Abfrage für diesen
Datnsatz machen, den DS holen und darstellen.
Im "else-{}" machst Du eine DB-Abfrage auf alle personen und zeigst die
Liste an.
> klappt ja nicht...
....klar klappt das.
> So ich hoffe, ich hab mich leicht verständlich ausgedrückt.....
Beim ersten mal nicht... :-)
Grüße, Matthias
Re: Inhalt eines Rahmens verändern
am 22.06.2006 16:06:43 von MaPhyA
> Versuch es bildlich darzustellen: ### bedeutet die Begrenzung der
> Rahmentabelle und ++++ die Begrenzung der Inhaltstabelle.
>
>
> ###########################
> # Register A ## Register B #
> #++++++++++++++++++++++#
> # Hier die Namensliste oder +#
> #+ die Personendetails +#
> #++++++++++++++++++++++#
> ###########################
>
>
Jetzt noch die entscheidende Frage geht das irgenwie mit einer isset()
abfrage in der Form
if(isset()){
Personendetails in der Inhaltstabelle
}
else
{
Personenliste
}
Oder gibt es eine elegantere Methode? Problem ist, dass die
Rahmentabelle nicht erneut geladen werden kann.
Vielen Dank
Ralf
Re: Inhalt eines Rahmens verändern
am 22.06.2006 16:08:10 von Niels Braczek
Matthias P. Wuerfl schrieb:
> Anschliessend innerhalb der "{}"=20
> solltest Du die $_GET['pid'] noch mal plus 0 nehmen um sie sicher in=20
> einen Integer zu wandeln.
Semantisch korrekter wäre dafür allerdings intval() oder ein Typecast=
mit (int) zu verwenden. Die automagische Typwandlung ist -- wie alle
Automagismen -- möglichst zu meiden.
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: Inhalt eines Rahmens verändern
am 22.06.2006 16:51:25 von MaPhyA
Matthias P. Wuerfl schrieb:
> Ha! Zusammen mit Deinem anderen Posting verstehe ich, worum es geht.
>
> MaPhyA schrieb:
>
> > if (isset(PersonenID)
> > { --- Gib die Angaben wie Wohnort etc. zu der angeklickten Person an -
> > ggf unset(PersonenID) um wieder zurück zur Liste zukommen. }
> > else
> > {
> > gib die Liste an
> > }
>
> Genau so. Nur statt "isset(PersonenID)" solltest Du
> "isset($_GET['pid'])" schreiben. Anschliessend innerhalb der "{}"
> solltest Du die $_GET['pid'] noch mal plus 0 nehmen um sie sicher in
> einen Integer zu wandeln. Dann kannst Du eine DB-Abfrage für diesen
> Datnsatz machen, den DS holen und darstellen.
>
> Im "else-{}" machst Du eine DB-Abfrage auf alle personen und zeigst die
> Liste an.
>
> > klappt ja nicht...
>
>
>
> ...klar klappt das.
>
Leider nicht, weil durch den Link die Datei
(index.php), die den Rahmen und damit auch den Inhalt verwaltet,
verändert wird.
Durch klicken auf
>
bzw.
wird die Adresse geändert und damit der Rahmen....
Ich hatte die fixe Idee, dass die Personenliste so erstellt wird, dass
es aussieht, wie ein Link aber nur Intern eine "detailsId" gesetzt
wird, die dann die Inhaltsdatei veranlasst, den Inhalt zu verändern.
ich kenne mich nicht (mehr) so gut aus: irgendetwas mit OnMouseover und
onClick hatte ich mal gesehen. Mit onMouseover kommt die typische
"Hand" als anzeige, dass es ein LInk ist und mit OnClick wird die
Variable gesetzt.
Aber so muss es nicht sein....
Vielleicht ist das ja noch wichtig zum Verstehen. Der Inhalt ist im
Prinzip eine eigene Datei.
Allerdings ist diese Datei innerhalb der Datenbank, die den Rahmen
aufbaut.
Vielen Dank
Ralf
Re: Inhalt eines Rahmens verändern
am 22.06.2006 17:22:44 von do.not.REMOVETHAT
Ralf Braband schrieb:
> Leider nicht, weil durch den Link die Datei
> (index.php), die den Rahmen und damit auch den Inhalt verwaltet,
> verändert wird.
Nö. Die Datei ist noch die gleiche und bis auf den veränderten Inhalt im
"Rahmen" wird sie genau so wieder geladen wie vorher.
> ich kenne mich nicht (mehr) so gut aus: irgendetwas mit OnMouseover und
> onClick hatte ich mal gesehen. Mit onMouseover kommt die typische
> "Hand" als anzeige, dass es ein LInk ist und mit OnClick wird die
> Variable gesetzt.
Ja, das geht auch, aber das ist dann "JavaScript" und nicht mehr "PHP".
Grüße, Matthias
> Vielleicht ist das ja noch wichtig zum Verstehen.
Wichtig zum Verstehen ist folgendes: Wenn Du das Script ausgeführt hast
wird der Krams (Ausgabe) zum Browser geschickt. Um dann was zu verädern
gibt es 3 Möglichkeiten:
1.
Du lädst die Seite komplett neu. Neue Scriptausführung, aber ein
(großer) Teil erscheit wieder genau so wie vorher, so dass es aussieht
als hätte sich nur ein Teil neu geladen/verändert.
2.
Du hast mit PHP das JavaScript generiert, dass das ganze dann gleich auf
dem Browser ausführt. Geht nicht immer, ist bisschen komplizierter und
Du musst Dich erst mal mit dem gewünschten JavaScript
ausseinandersetzen. Außerdem bist Du dann hier flasch.
3.
Du nimmst Ajax um zwischen JavaScript und dem Server mit seinen
PHP-Scripten zu kommunizieren. Das ist neumodisch und erst recht
kompliziert, allerdings irgendwie auch die Lösung, mit der man am Ende
am dollsten angeben kann. Noch ein Vorteil: Man darf dann "Web2.0" auf
seine Homepage schreiben und ist damit total im Trend.
Grüße, Matthias
Re: Inhalt eines Rahmens verändern
am 22.06.2006 17:42:28 von MaPhyA
Matthias P. Wuerfl schrieb:
> Wichtig zum Verstehen ist folgendes: Wenn Du das Script ausgeführt hast
> wird der Krams (Ausgabe) zum Browser geschickt. Um dann was zu verädern
> gibt es 3 Möglichkeiten:
>
> 1.
> Du lädst die Seite komplett neu. Neue Scriptausführung, aber ein
> (großer) Teil erscheit wieder genau so wie vorher, so dass es aussieht
> als hätte sich nur ein Teil neu geladen/verändert.
>
Logo.... Also ich lade die Seite neu. Dann muss ich aber -neben der
Seitenvariablen, die den Rahmen mit Inhalt bestimmt - der (unsichtbare)
PersonenID mit übergeben, damit diese PersonenID den Inhalt steuert...
Und damit ich wieder zur Liste komme muss ich diese (unsichtbare)
PersonenID wieder löschen...
Jetzt muss ich mir nur noch herausfinden, wie das geht...
Dazu muss ich glaube ich mal in die anderen Postings gucken und / oder
einige HOWTOS durchlesen...
Vielen Dank für die Mühen..=20
Ralf
Re: Inhalt eines Rahmens verändern
am 22.06.2006 18:53:40 von do.not.REMOVETHAT
Ralf Braband schrieb:
> Logo.... Also ich lade die Seite neu. Dann muss ich aber -neben der
> Seitenvariablen, die den Rahmen mit Inhalt bestimmt - der (unsichtbare)
> PersonenID mit übergeben, damit diese PersonenID den Inhalt steuert...
Hab ich dich a-Tag mit Fragezeichen und PersonenID gezeigt.
> Und damit ich wieder zur Liste komme muss ich diese (unsichtbare)
> PersonenID wieder löschen...
Machst Du a-Tag one* Fragezeichen und one* PersonenID.
Grüße, Matthias
* "one" one h, sonst wär's ja "mit".