Beitrag von Tini (0 Beiträge) am Freitag, 1.April.2005, 11:41.
Details ein und ausblenden im perl???????
Ich probiere zur Zeit wieder an meinem get rum :-(
In meiner Datenbank "schule" habe ich u.a. die Felder $Schule (Textfeld) und $Beschreibung (Textarea).
Eine Liste meiner Ergebnisse zu bekommen klappt. Auch auf eine neue Seite zu linken und dort die weiteren Eintragsinhalte anzuzeigen.
Statt auf eine neue Seite zu linken soll bei Klick auf den "Detail-Link" sich einfach eine neue Zeile mit dem Feldinhalt $Beschreibung.
Eigentlich eine Ein- & Ausblendung.
get "", "schulliste_nrw", "erghash";
while(get_next("erghash")){
......
out "$Schule<br><a
href='..???????????[Details]</a>
So hatte ich mir das vorgestellt:
normal:
Realschule XXX -Details einblenden- -Details ausblenden-
bei Klick auf -Details einblenden-:
Realschule XXX
Die Realschule XXX besteht seit .......
bei Klick auf -Details ausblenden-:
Realschule XXX -Details einblenden- -Details ausblenden-
Kann mir da jemand weiterhelfen ??
Danke
Tini
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 1.April.2005, 12:47.
Re: Details ein und ausblenden im perl???????
Antworten
Beitrag von Tini (0 Beiträge) am Freitag, 1.April.2005, 13:25.
Re: Details ein und ausblenden im perl???????
Hallo Claus,
so in etwa habe ich mir das gedacht.
Jetzt muß ich es nur noch schaffen, den iframe nur
einzublenden, wenn ich es möchte (per link).
Danke erstmal
Tini
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 1.April.2005, 13:51.
Re: Details ein und ausblenden im perl???????
Hallo tini,
Du kannst den iframe über die entsprechenden Parameter auch "unsichtbar" darunter setzten oder auch die Ausgabe direkt im iframe steuern.
Habe das nur Ansatzweise mal probiert.
Die Parameter sind bei dem Link von selfhtml alle beschrieben. (keine Rahmen usw.)
Gruß
Claus
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 1.April.2005, 15:31.
Re: Details ein und ausblenden im perl???????
Wenn ichs richtig verstanden habe, willst Du sowas wie hier:
http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&kennung=66
(Verstecken / Anzeigen rechts oben)
Der Code dazu sieht so aus:
<SCRIPT>
<!--
function h(a,b){document.getElementById(a).style.display=b}
// -->
</SCRIPT>
<SPAN id=hide style="FONT-SIZE: 80%; FLOAT: right">
<A onclick="h('Index','none');h('hide','none');h('show','');return false" href="#">Verstecken</A></SPAN>
<SPAN id=show style="DISPLAY: none; FONT-SIZE: 80%; FLOAT: right"><A onclick="h('Index','');h('hide','');h('show','none');return false" href="#">Anzeigen</A></SPAN>
<B>Titel</B>
<DIV id=content>
...Inhalt...
</DIV>
hilfts was? ;-)
Antworten
Beitrag von Tini (0 Beiträge) am Freitag, 1.April.2005, 18:42.
Re: Details ein und ausblenden im perl???????
GENAU !!!!!!!
werde mich heute abend gleich mal ranmachen.
DANKE :-)
Tini
Antworten
Beitrag von Tini (0 Beiträge) am Freitag, 1.April.2005, 21:03.
Re: Details ein und ausblenden im perl???????
Hallo Christoph,
versuche mich gerade daran. Ich rede mir mal ein, daß es wahrscheinlich zu leicht ist, weswegen ich es nicht verstehe :-))
Help - Tini
Quelltext:
get "Id==*", "schule";
out "xxxx" if ($_amount < 1);
while(get_next("schule")){
out "<SCRIPT>
<!--
function h(a,b){document.getElementById(a).style.display=b}
// -->
</SCRIPT>
<SPAN id=hide style='FONT-SIZE: 80%; FLOAT: right'>
<A onclick='h('Index','none');h('hide','none');h('show','');return false' href='http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/schule/schule'>Verstecken</A></SPAN>
<SPAN id=show style='DISPLAY: none; FONT-SIZE: 80%; FLOAT: right'><A onclick='h('Index','');h('hide','');h('show','none');return false' href='http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/schule/schule'>Anzeigen</A></SPAN>
<B>Titel</B>
<DIV id=content>
<b>$Schule</b><br><br>
$Details<br><br><hr>
</DIV>";
}
</perl>
Link:
http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/schule/schule
Antworten
Beitrag von hempelr (1976 Beiträge) am Samstag, 2.April.2005, 10:07.
Re: Details ein und ausblenden im perl???????
also erst mal rufst du durch den Link das Template nochmal vom Server ab, dadurch wird ja automatisch der "Urzustand" hergestellt, also alles, was in HTML ausgegeben wird, wird neu aufgebaut.
Deshalb läuft das onClick-Ereignis vollkommen weg..., weil es aufgrund der neuen Seitenaforderung nicht lokal ausgeführt werden kann.
Zweitens hast du aufgrund der Schleife durchs while_get_next jede Menge Elemente mit den gleichen IDs (wohlgemerkt Objekt-IDs, hat nix mit BasePortal zu tun!) mit Wert "Index", "hide", und "show" auf der Seite. Und da kann natürlich der JS-Interpreter nicht wissen, welches er ansprechen soll (der Funktions-Term document.getElementById(a).style.display=b ist ja immer der gleiche und bekommt immer die gleichen Werte als Parameter übermittelt.
Drittens ist die gleiche Funktion bei jedem Datensatz drin - nun weiss natürlich der JS-Interpreter leicht sonder schon etwas komplexer, immer dran denken, JS wird Clientseitig ausgeführt, die Website wird Serverseitig gebaut, und wenn man beides verwenden will, muss man genau überlegen, was wann und wo passieren soll.
Vielleicht versuchst du ja mal meinen Vorschlag der serversetigen Lösung umzusetzen.
Ruben
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Sonntag, 3.April.2005, 13:32.
Re: Details ein und ausblenden
Versuchs mal so:
<SCRIPT>
<!--
function h(a,b){document.getElementById(a).style.display=b}
// -->
</SCRIPT>
<perl>
get "Id==*", "schule";
out "xxxx" if ($_amount < 1);
while(get_next("schule"))
{
out <<EOF;
<SPAN id=hide$_id style='FONT-SIZE: 80%; FLOAT: right'>
<A onclick='h('content$_id','none');h('hide$_id','none');h('show$_id','');return false' href='#'>Verstecken</A></SPAN>
<SPAN id=show$_id style='DISPLAY: none; FONT-SIZE: 80%; FLOAT: right'><A onclick='h('content$_id','');h('hide$_id','');h('show$_id','none');return false' href='#'>Anzeigen</A></SPAN>
<B>$Schule</B><br>
<DIV id=content$_id>
$Details<br><br><hr>
</DIV>
EOF
}
</perl>
Müsssssste eigentlich gehen (nich getestet) ;-)
Antworten
Beitrag von hempelr (1976 Beiträge) am Freitag, 1.April.2005, 14:58.
Re: Details ein und ausblenden im perl???????
aktive Elemente sind eigentlich out im Web - und Iframes gehören irgendwie dazu. Insbesondere für Seiten Öffentlicher Träger ist ab 2006 eh Schluss mit JavaScript und verschachtelten Tabellen und son Zeugs. Ab da m u s s eine Website bestimmten Kriterien der Barrierefreiheit genügen...
Ich würde das serverseitig machen, in etwa so: (not testet, nur als Anregung)
---schnipp
get "", "schulliste_nrw", "erghash";
while(get_next("erghash")){
......
# wenn Parameter dsn ungleich der aktuellen Id nur Übersicht ausgeben
if ($dsn != $Id){
out<<EOF;
$Schule<br>
<a href='$_link&dsn=$Id'>[Details einblenden]</a>
}
# wenn Parameter dsn gleich der aktuellen Id Details ausgeben
if ($dsn == $Id){
out<<EOF;
$Schule<br>
$strasse<br>
$hausnummer<br>
...weitere Details ...
<a href='$_link'>[Details ausblenden]</a>
---schnapp
Da wird zwar die Seite nochmal geladen, aber man hat die Gewähr, das alle Browser das anzeigen, egal, was der User als Präferenzen eingestellt hat.
Hth
Ruben
Antworten
Beitrag von Tini (0 Beiträge) am Sonntag, 3.April.2005, 15:02.
Re: Details ein und ausblenden im perl???????
Hallo Ruben,
ich habe mir Deinen Vorschlag angenommen und es scheint (fast) zu funktionieren.
Jetzt werden aber immer bei einem Eintrag die Details angezeigt.
Kann man das auch so einstellen, daß grundsätzlich beim ersten Aufruf keine Details eingeblendet werden und nur, wenn man den Link klickt?
Man soll nur die Liste haben und erst wenn man will, läßt man sich die Details anzeigen.
http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/schule/schule
Geht das?
Tini
Antworten
Beitrag von Tini (0 Beiträge) am Sonntag, 3.April.2005, 17:22.
Re: Details ein und ausblenden im perl???????
Antworten
Beitrag von Friesecke (245 Beiträge) am Sonntag, 3.April.2005, 17:51.
Re: Details ein und ausblenden im perl???????
Hallo Tini,
Du hast es doch.
Du brauchst noch einen Link Ausblenden mit &dsn=111, um den Ausgangszustand wieder herzustellen.
Gruß
Friesecke
Antworten
Beitrag von Tini (0 Beiträge) am Sonntag, 3.April.2005, 23:07.
Re: Details ein und ausblenden im perl???????
Antworten
Beitrag von Friesecke (245 Beiträge) am Montag, 4.April.2005, 06:19.
Re: Details ein und ausblenden im perl???????
Hallo Tini,
dann ergänz doch den ersten Aufruf um &dsn=111
Gruß
Friesecke
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 4.April.2005, 08:19.
Re: Details ein und ausblenden im perl???????
gib mal den relevanten Codeteil durch, ist wahrscheinlich im ersten Schleifendurchlauf irgendwas nicht ok, so ohne den tatsächlichen Quelltext kann man da nix zu sagen (ich hatte ja den Quelltext nur schnell mal so hier im Forum reingehackt ohne irgendwas zu testen...)
Ruben
Antworten
Beitrag von Tini (0 Beiträge) am Montag, 4.April.2005, 09:46.
Re: Details ein und ausblenden im perl???????
Antworten
Beitrag von richard (1187 Beiträge) am Montag, 4.April.2005, 11:35. WWW: posaunenchor-rhoden.de
Re: Details ein und ausblenden im perl???????
Setz mal vor der while-Schleife die Variable $dsn auf -1, die sollte nicht als id vorkommen.
Antworten
Beitrag von richard (1187 Beiträge) am Montag, 4.April.2005, 11:46.
Re: Details ein und ausblenden im perl???????
Sorry, mußt vorher noch prüfen, ob die Variable gesetzt ist, also sowas wie
Antworten
Beitrag von Tini (0 Beiträge) am Montag, 4.April.2005, 13:46.
Re: Details ein und ausblenden im perl???????
Danke, habe als $dsn nicht die -1 genommen, da der Eintrag mit der ID 0 Probleme hatte.
Funktioniert aber super :-))
Danke an alle
Tini
Antworten
Beitrag von Tini (0 Beiträge) am Montag, 4.April.2005, 16:59.
Re: Details ein und ausblenden im perl???????
Hallo :-)
genauso, wie mit den Details ein/ und ausblenden möchte ich die Möglichkeit geben, optional ein Kontaktformular ein- & auszublenden.
Habe versucht die while-schleife zu doppeln und beim zweiten mal statt $dsn $hsn genommen.
aber irgendwie habe ich mich in der schleife verstrickt!?!?!
so hat bisher noch alles geklappt.
Tini
http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/tini1972/schule/schule
get "", "schule", "erghash";
if (!$dsn) {
$dsn=1000000000;
}
while(get_next("erghash")){
if ($dsn != $Id){
out<<EOF;
$Schule<br>
<a href='$_link&dsn=$Id'>[Details einblenden]</a>|||[Kontaktformular einblenden]<br><br><hr>
EOF
}
if ($dsn == $Id){
out<<EOF;
$Schule<br>
$Details<br>
<a href='$_link'>[Details ausblenden]</a>|||[Kontaktformular ausblenden]<br><br><hr>
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 4.April.2005, 17:47.
Re: Details ein und ausblenden im perl???????
Also - nimm mal statt der 100000 besser das -1 so wie es richard vorgeschlagen hat - das ist einfach "Perl-Koformer", weil -1 bei vielen Funktionen gleichbedeutend mit "falsch" ist, und man will doch immer auch die Sache möglichst "richtig" machen...
Mit dem Formular das ist nun jetzt die Frage, was da passieren soll. Aber hier kommen wir schon wieder in den Bereich, gegen den ich etwas habe, nämlich sich die Logik und dann auch noch die Syntax, sprich die Anwendung gleich von einem gutmütigem Helfer fertig machen zu lassen.
Da muss erst mal mehr Input kommen, was du machen willst, was du selbst bereits von der Logik her versucht hast und wo du hängst.
Das was du hier gepostet hast, lässt in keiner Weise erkennen, was und wie du es machen willst und beinhaltet auch keinerlei eigene Kreativität.
Hast du das kurze Script überhaupt verstanden? Wenn ja, dürfte es nicht allzu schwer sein, die Werte entsprechend zu verwenden und einen Link auf ein Formular zu bauen.
Nur soviel als Gedankenanstoss:
- zusätzlichen Parameter in den Link für das Kontaktformular
- Bedingungsblock einfügen, der diesen Parameter Prüft, und innerhalb dessen das Formular generiert wird
- Alle Werte aus dem Datensatz stehen in jedem Schleifendurchlauf zur Verfügung, da kann man dann eMail-Addy und sonstwas aus der DB gleich ins Form mit einbauen
CU
Ruben
Antworten
Beitrag von richard (1187 Beiträge) am Montag, 4.April.2005, 18:09. WWW: posaunenchor-rhoden.de
Re: Details ein und ausblenden im perl???????
Antworten
Beitrag von Tini (0 Beiträge) am Montag, 4.April.2005, 19:05.
Re: Details ein und ausblenden im perl???????
Danke Richard,
werde ich versuchen.
Tini
Antworten