Re: Details ein und ausblenden im perl??????? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    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

 Alle Einträge zum Thema: Zur Liste 
    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:
      <perl>
      

      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>
      EOF
      }
      

      ---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???????

      Hallo Ruben,

      user ist der Login des Eintragverwalters und freigegeben eine Checkbox.

      Danke
      Tini

      <perl>
      

      get "freigegeben==1 user==$user", "schule", "erghash";

      while(get_next("erghash")){
      if ($dsn != $Id){
      

      out<<EOF;
      $Schule<br>
      <a href='$_link&dsn=$Id'>[Details einblenden]</a><br><br><hr>
      EOF
      }
      if ($dsn == $Id){
      out<<EOF;
      $Schule<br>
      $Details<br>
      

      <a href='$_link'>[Details ausblenden]</a><br><br><hr>
      EOF
      }
      }
      </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

      if (!$dsn) {
      $dsn=-1;
      }
      

     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

      <perl>
      

      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>
      EOF
      }
      }
      </perl>
      

     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???????

      Ohen dem Ruben da widersprechen zu wollen, eine kleine Ergänzung:

      Wann, wie und wo willst Du den Link denn anbieten? Mal allgemein:

      Mit Links in dieser Art:

      <a href='$_link&kontakt=1'>[Kontaktformular an]</a>
      <a href='$_link&kontakt=2'>[Kontaktformular aus]</a>
      

      (Das wäre der zusätzliche Parameter.)

      steuerst Du die Auswahl, die Links müssen nur an die Stelle von wo aus Sie anklickbar sein sollen.



      An der Stelle, wo die Ausgabe erfolgen soll käme dann was in der Art wie:


      if (kontakt==1) {
      

      Ausgabe Deines Kontakformulars

      }
      

      (Bedingungsblock)

      Eine zusätzliche Schleife brauchts da eigentlich nicht, Du mußt allerdings unter Umständen die $id im Link mit übergeben:

      <a href='$_link&kontakt=1&dsn=$Id'>[Kontaktformular an]</a>
      

      Kommt halt darauf was sonst noch angezeigt werden soll.

     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


     
 Liste der Einträge von 25050 bis 25200:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!