Re: versuch an einer einfachen blätterfunkiton - 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 Claus (4645 Beiträge) am Sonntag, 31.Juli.2005, 21:04.
    Re: versuch an einer einfachen blätterfunkiton

      das Beispiel aus der Doku kannste knicken, habe ich auch mal 1:1 probiert. funzt nicht!!

      Habe ein paar Stunden gebraucht, um das korrekt anzupassen.

      Wünsche dir viel Spaß dabei, denn ohne perl-Kenntnisse kommst du da eh nicht weiter.

      Bin ja grundsätzlich immer bereit zu helfen, aber alles hat mal seine Grenze.

      wenn ich jetzt noch Doku-Teile anpassen muß ist einfach mal "Schulz"!

      Dafür bin ich nicht zuständig.

      Auch wenn ich mir jetzt wieder den Zorn zuziehe, aber auch unbequeme Dinge müssen mal gesagt werden.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von bernd (25 Beiträge) am Sonntag, 31.Juli.2005, 20:20.
    versuch an einer einfachen blätterfunkiton

      guten abend,

      ich versuche mich gerade an einer einfachen blätterfunktion.

      durch range=0,5 lege ich fest, in welchen blöcken geblättert werden soll.

      im link lege ich durch kundennr=$kundennr fest, daß nur die daten genommen werden, wo dessen kundennr drinsteht.
      die seite wird auch durch ergänzung der kundennr aufgerufen.

      $_link$append&kundennr=$kundennr&range=$oldrange,$_range_length
      

      ich bekomme auch die weiter links angezeigt, doch es will einfach nicht blättern!

      bernd

      ----------------
      get "kundennr==$kundennr sort=datum" range=0,5, "artikel", "erghash";
      
      ....

      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      out "<center>";
      out "<< <a href=\"$_link$append&kundennr=$kundennr&range=$oldrange,$_range_length\">Zurück</a> " if $oldrange>=0;
      out "<a href=\"$_link$append&kundennr=$kundennr&range=$newrange,$_range_length\">Weiter</a> >>" if $newrange<$_amount_query;
      out "</center>";
      

      --------------------------

     Antworten

    Beitrag von Claus (4645 Beiträge) am Sonntag, 31.Juli.2005, 21:04.
    Re: versuch an einer einfachen blätterfunkiton

      das Beispiel aus der Doku kannste knicken, habe ich auch mal 1:1 probiert. funzt nicht!!

      Habe ein paar Stunden gebraucht, um das korrekt anzupassen.

      Wünsche dir viel Spaß dabei, denn ohne perl-Kenntnisse kommst du da eh nicht weiter.

      Bin ja grundsätzlich immer bereit zu helfen, aber alles hat mal seine Grenze.

      wenn ich jetzt noch Doku-Teile anpassen muß ist einfach mal "Schulz"!

      Dafür bin ich nicht zuständig.

      Auch wenn ich mir jetzt wieder den Zorn zuziehe, aber auch unbequeme Dinge müssen mal gesagt werden.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 1.August.2005, 00:58.
    Re: versuch an einer einfachen blätterfunkiton

      Selbstverständlich funzt der Blätter-Code aus der Doku... Genauso wie er da steht...

     Antworten

    Beitrag von Olaf (382 Beiträge) am Montag, 1.August.2005, 00:22.
    Re: versuch an einer einfachen blätterfunkiton

      Na, ich finde es auch nicht gut wenn Einträge in der BIB noch mit Fehlern bestückt sind, aber vielleicht haben die Ersteller das noch immer nicht bemerkt...

      Ich habe hier mal einen Quellcode, den Du mal testen solltest.
      Vielleicht liegt es auch an Deinem get-Befehl?

      # neu blättern-Zeichen
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      out "<< <a href=\"$_link&range=$oldrange,$_range_length\"onmouseover='window.status=\"neuere Infos\";return true;'onmouseout='window.status=\"Bernds Seite\";return true;'onmousedown='window.status=\"Bernds Seite\";return true;'><font color=\"yellow\">neuere Infos</a></font>  " if $oldrange>=0;
      out "  <a href=\"$_link&range=$newrange,$_range_length\"onmouseover='window.status=\"ältere Infos\";return true;'onmouseout='window.status=\"Bernds Seite\";return true;'onmousedown='window.status=\"Bernds Seite\";return true;'><font color=\"yellow\">ältere Infos</a></font> >>" if $newrange<$_amount_query;
      # neu blättern-Zeichen
      

      Ich benutze Tinas-Blättern-BIB-Beispiel, aber ich weiss nicht, ob ich da auch etwas verbessern oder ergänzen musste. Aber im Forum/BIB ist es wohl mehr gefragt.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 1.August.2005, 00:58.
    Re: versuch an einer einfachen blätterfunkiton

      Ändere die Zeile

      get "kundennr==$kundennr sort=datum" range=0,5, "artikel", "erghash"; 
      

      in

      get "kundennr==$kundennr sort=datum range^=0,5", "artikel", "erghash"; 
      

      ;-)

     Antworten

    Beitrag von bernd (25 Beiträge) am Montag, 1.August.2005, 02:09.
    Re: versuch an einer einfachen blätterfunkiton

      hallo,

      am range^=0,5 liegt es nicht. da werden alle einträge angzeigt.
      bei range=0,5 paßt das schon.

      es liegt vermutlich am erweitern des blätterlinks um die $kundennr
      das kriegt er nicht gerafft.

      wenn ich die seite mit www......&kundennr=123 aufrufe, soll auch nur
      in den einträgen mit kundennr 123 geblättert werden und nicht in allen.

      -------------
      out "<< <a href=\"$_link$append&kundennr=$kundennr&range=$oldrange,$_range_length\">Zurück</a> " if $oldrange>=0;
      out "<a href=\"$_link$append&kundennr=$kundennr&range=$newrange,$_range_length\">Weiter</a> >>" if $newrange<$_amount_query;
      
      --------------

      guten nacht
      bernd

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 1.August.2005, 02:15.
    Re: versuch an einer einfachen blätterfunkiton

      Wenn Du bei der Abfrage

      range=0,5

      schreibst, dann werden immer die ersten 5 Einträge angezeigt und Blättern kann nicht funktionieren.

      range^=0,5

      holt die ersten 5 Einträge nur dann, wenn nichts anderes über die URL gesetzt wird.

      Wie lautet denn Dein kompletter Code, der Fehler liegt woanders...

     Antworten

    Beitrag von bernd (25 Beiträge) am Montag, 1.August.2005, 11:42.
    Re: versuch an einer einfachen blätterfunkiton

      guten morgen,

      hier mal mein code:

      <perl>
      get "kundennr==$kundennr", "kunden", "erghash2";
       
      while(get_next("erghash2")){
      

      out<<EOF;

      <table width=100%>
      

      <tr><td>
      <b>$kundennr</b><br>
      <b>$name</b><br>
      $strasse<br>
      $plz $ort<br>
      <hr>
      </td>
      </table>
      EOF
      }
      get "kundennr==$kundennr sort=datum range=^0,5", "artikel", "erghash"; 
      

      while(get_next("erghash")){


       @l_datums = ("$datum");
          foreach my $dat(sort @l_datums){
      $dat=datum("$datum", "Tag0.Monat0.Jahr2");
      out<<EOF;
      <table width=100%>
      

      <tr>
      <td><b>$artikelname</b> (Kundennr.: $kundennr)<br>
      Datum: $dat<br>
      

      Beschreibung:<br>
      $beschreibung</td>
      

      </td></tr>

      <tr><td>
      EOF
         }
         }
      

      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      out "<center>";
      out "<a href=\"$_link$append&kundennr=$kundennr&range=$oldrange,$_range_length\">Zurück</a> " if $oldrange>=0;
      out "<a href=\"$_link$append&kundennr=$kundennr&range=$newrange,$_range_length\">Weiter</a>" if $newrange<$_amount_query;
      out "</td></tr>";
      

      </perl>


      die seite würde man dann so aufrufen:
      http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/bernd99/muster/artikel&kundennr=123


      bernd

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 1.August.2005, 14:35.
    Re: versuch an einer einfachen blätterfunkiton

      Schau mal, Du hast =^ geschrieben statt ^=:

      get "kundennr==$kundennr sort=datum range=^0,5", "artikel", "erghash";
      

      Richtig ist:

      get "kundennr==$kundennr sort=datum range^=0,5", "artikel", "erghash";
      

      Mmh, dann noch was: Du lässt Dir die Einträge sortiert nach "datum" geben und sortierst sie dann selber nochmal um - ebenfalls nach "datum"... Das ist unnötig ;-) D.h. Die folgenden beiden Zeilen kannste rausschmeissen:

      @l_datums = ("$datum");
          foreach my $dat(sort @l_datums){
      
      ...

      Und weiter unten dann eine schliessende geschweifte Klammer:

      }
      

     Antworten

    Beitrag von bernd (25 Beiträge) am Montag, 1.August.2005, 15:57.
    Re: versuch an einer einfachen blätterfunkiton

      daran liegt es aber nicht :-(

      bei folgenden link müßte eine seite mit 5 artikeln und dann ein weiter.link
      zum 6. artikel sein.
      es werden aber alle 6 auf einmal angezeigt und der weiter-link funktioniert nicht.
      abgesehen davon dürfte ja auch kein zurück-link da sein?!?

      http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/bernd99/muster/artikel&kundennr=123

      -------------------------

      <perl>
      get "kundennr==$kundennr", "kunden", "erghash2";
       
      while(get_next("erghash2")){
      

      out<<EOF;

      <table width=100%>
      

      <tr><td>
      <b>$kundennr</b><br>
      <b>$name</b><br>
      $strasse<br>
      $plz $ort<br>
      <hr>
      </td>
      </table>
      EOF
      }
       
      get "kundennr==$kundennr sort=datum range^=0,5", "artikel", "erghash";
      while(get_next("erghash")){ 
      $dat=datum("$datum", "Tag0.Monat0.Jahr2");
      out<<EOF;
      <table width=100%>
      

      <tr>
      <td><b>$artikelname</b> (Kundennr.: $kundennr)<br>
      Datum: $dat<br>
      

      Beschreibung:<br>
      $beschreibung</td>
      

      </td></tr>

      <tr><td>
      EOF
      
         } my $newrange=$_range+$_range_length; my $oldrange=$_range-$_range_length; $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length; out "<center>"; out "<a href=\"$_link$append&kundennr=$kundennr&range=$oldrange,$_range_length\">Zurück</a> " if $oldrange>=0; out "<a href=\"$_link$append&kundennr=$kundennr&range=$newrange,$_range_length\">Weiter</a>" if $newrange<$_amount_query; out "</td></tr>";   

      </perl>
      --------------------------------------------------

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Montag, 1.August.2005, 18:57.
    Re: versuch an einer einfachen blätterfunkiton

      nagut...

      Erstens: HTML haut nicht hin, du machst für jeden DS ne Tabelle auf, aber nirgendwo eine zu

      Zweitens: Bei mehreren get in einem Template (auch bei relationalem get) ist es nach meiner Erfahrung sinnvoll, Parameter nicht nach Systemvariablen zu benennen, sondern eigene Namen zu geben. Bspw. wird hier $_range und $range_length immer durch das get auf die Kundendatei mit 0 überschrieben, somit hat der Scriptblock fürs Blättern nix zum rechnen und der Anzeigebereich ist immer falsch.
      Man kann bei mehreren get offenbar keine bp-internen Parameter direkt mit übergeben

      Probiers mal so:
      ---schnipp
      <perl>
      # Werte für Range vorbelegen
      my $ra ||= 0;
      my $ra_l ||= 5;
      

      get "kundennr==$kundennr", "kunden", "erghash2";

      while(get_next("erghash2")){
       out<<EOF;
         <table width=100%>
         <tr><td>
         <b>$kundennr</b><br>
         <b>$name</b><br>
         $strasse<br>
         $plz $ort<br>
         <hr>
         </td>
         </table>
      EOF
      } # E while_get_next
      out "<table width=100%>";
      get "kundennr==$kundennr sort=datum range=$ra,$ra_l", "artikel", "erghash";
      

      while(get_next("erghash")){
       $dat=datum("$datum", "Tag0.Monat0.Jahr2");
       out<<EOF;
       <tr>
       <td><b>$artikelname</b> (Kundennr.: $kundennr)<br>
       Datum: $dat<br>
       Beschreibung:<br>
       $beschreibung</td>
       </td></tr>
       <tr><td>
      EOF
      } # E While_get_next
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      out "<center>";
      out "<a href=\"$_link&kundennr=$kundennr&ra=$oldrange&$ra_l=$ra_l\">Zurück</a> " if $oldrange>=0;
      out "<a href=\"$_link&kundennr=$kundennr&ra=$newrange&$ra_l=$ra_l\">Weiter</a>" if $newrange<$_amount_query;
      out "</td></tr></table>";
      </perl>
      
      ---schnapp
      Nicht getestet!
      Hoffe es hilft dir
      Ruben

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Montag, 1.August.2005, 19:01.
    sorry - kleiner Fehler - Re: versuch an einer einfachen blätterfunkiton

      die Linkzeilen bitte korrigieren, es darf nicht heissen ..&$ra_l=$ra_l... sondern &ra_l=$ra_l, also nach dem & kein $

     Antworten

    Beitrag von bernd (25 Beiträge) am Montag, 1.August.2005, 19:32.
    Re: versuch an einer einfachen blätterfunkiton

      schade.

      es werden zwar die ersten 5 angezeigt und auch der weiter-link, doch bei klick darauf, bleiben die selben 5 einträge angezeigt.

      http://baseportal.de/cgi-bin/baseportal.pl?htx=/bernd99/muster/artikel&kundennr=123

      bernd

      ---------------------
      <center>
      <perl>
      # Werte für Range vorbelegen
      my $ra ||= 0;
      my $ra_l ||= 5;
      

      get "kundennr==$kundennr", "kunden", "erghash2";
       
      while(get_next("erghash2")){
      

      out<<EOF;
      <table width=400><tr><td>
      <b>$kundennr</b><br>
      <b>$name</b><br>
      $strasse<br>
      $plz $ort<br>
      <hr>
      </td></tr>
      

      EOF
      }
      

      get "kundennr==$kundennr sort=datum range=$ra,$ra_l", "artikel", "erghash";

      while(get_next("erghash")){ 
      

      $dat=datum("$datum", "Tag0.Monat0.Jahr2");
      out<<EOF;
      <tr><td>
      <b>$artikelname</b> (Kundennr.: $kundennr)<br>
      Datum: $dat<br>
      Beschreibung:<br>
      $beschreibung
      </td></tr>
      <tr><td>
      

      EOF
         }
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      out "<center>";
      out "<a href=\"$_link&kundennr=$kundennr&ra=$oldrange&ra_l=$ra_l\">Zurück</a> " if $oldrange>=0;
      out "<a href=\"$_link&kundennr=$kundennr&ra=$newrange&ra_l=$ra_l\">Weiter</a>" if $newrange<$_amount_query;
      out "</td></tr></table>";
      

      </perl>
      ---------------------

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Montag, 1.August.2005, 20:47.
    Re: versuch an einer einfachen blätterfunkiton

      jaja - sorry - mein Fehler....
      Mach mal das "my" vor der Zuweisung an $ra und $ra_l am Anfang weg - dann müsste es aber funzen...

     Antworten

    Beitrag von bernd (25 Beiträge) am Montag, 1.August.2005, 21:00.
    many thanx to ruben !!!

      genau!!
      das wars - einfach genial.

      vielen dank!
      bernd

     Antworten


     
 Liste der Einträge von 23250 bis 23325: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.10s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!