Ich krieg's einfach nicht hin - 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 Mattias (110 Beiträge) am Freitag, 28.März.2003, 17:03.
    Ich krieg's einfach nicht hin

      Das mit $_get{xxx} hatte ich schon probiert, auch mit $_cgi{xxx} und sogar mit $_put{xxx}. Jetzt hab ich aus dem Inputnamen mal das ":" rausgenommen. Nun wird mit $_get{xxx} der Ort ein Mal übergeben (wie vorher), dann ist wieder zappenduster.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Mattias (110 Beiträge) am Freitag, 28.März.2003, 12:39.
    Variablenverlust beim Blättern in Suchergebnissen (Perl)

      Hallo, bin noch ziemlicher Newbie in Perl. Habe eine Liste mit einem Suchformular. Die Blätterfunktion (thx@Raphael) habe ich mir wie folgt angepasst:

      $rtag="&_Datum_Tag~=$tag" if $tag;
      $rmonat="&_Datum_Monat~=$monat" if $monat;
      $rjahr="&_Datum_Tag~=$jahr" if $jahr;
      $rort="&Ort~=$ort" if $ort;
      $rsuch="&_fullsearch~~$such" if $such;
      $rparam="$rtag$rmonat$rjahr$rort$rsuch";
      if($rparam==""){
      $rquery=$_amount_all;
      }else{
      $rquery=$_amount_query;
      }
      

      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      

      $BrowseLine ="<tr><td colspan=\"3\" align=\"center\">[ &nbsp; ";
         
      if ($oldrange>=0) {
      $BrowseLine .= "<a href=\"$BPpath/$basepath&range=$oldrange,$_range_length$rparam\">Vorherige Seite</a> &nbsp; | "; } 
      else {
      $BrowseLine .= "Vorherige Seite &nbsp; | &nbsp; "; }
      

      $BrowseLine .= "<a href=\"#suchen\">suchen</a> &nbsp; | &nbsp; ";
         
      if ($newrange<$rquery) {
      $BrowseLine .= "<a href=\"$BPpath/$basepath&range=$newrange,$_range_length$rparam\">N&auml;chste Seite</a> &nbsp; ]"; } 
      else {
      $BrowseLine .= "N&auml;chste Seite &nbsp; ]"; }
      

      $BrowseLine .= "</td></tr>";

      Mittels $rparam und $rquery gelingt es mir, die Suchbegriffe in die Blätterfunktion einzubinden, aber nur ein Mal. Blättere ich weiter, sind sie weg, und es erscheinen wieder alle Einträge. Nun kann ich wohl die Variablen irgendwo in einem anderen Frame oder mit JS zwischenspeichern, aber vielleicht kennt jemand von euch eine einfachere Lösung? Über die "Suche im Forum" habe ich jedenfalls nichts gefunden. Danke!

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 28.März.2003, 13:01.
    Re: Variablenverlust beim Blättern in Suchergebnissen (Perl)

      du solltest schon die &Felder so weitergeben, wie sie beim ersten mal reinkamen:
      $rparam.="&tag~=$_sel{tag}" if $_sel{tag};
      $rparam.="&monat~=$_sel{monat}" if $_sel{monat};
      
      usw...
      somit ist die schleife beim blättern wieder geschlossen

     Antworten

    Beitrag von Mattias (110 Beiträge) am Freitag, 28.März.2003, 14:14.
    Vielen Dank

      für die schnelle Antwort!

     Antworten

    Beitrag von Mattias (110 Beiträge) am Freitag, 28.März.2003, 14:40.
    Sorry, funzt nicht.

      $_sel{xxx} liefert bei jedem Aufruf kein Ergebnis. Was mache ich falsch?
      

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 28.März.2003, 15:24.
    Re: Sorry, funzt nicht.

      na dann bräuchten wir etwas mehr code:
      wie werden die daten übergeben?
      was passiert davor, dahinter...

      Sander

     Antworten

    Beitrag von Mattias (110 Beiträge) am Freitag, 28.März.2003, 16:17.
    Re: Sorry, funzt nicht.

      Okay, also das ganze Dingens läuft über ein Form, das die Variablen an die selbe Seite übergibt:

      <form action="http://..." method="post" enctype="multipart/form-data">
      

      Die Eingabe erfolgt auch ganz normal über:

      <input name="ort:="> usw.
      <input type="submit" value="Suchen">
      

      Nichts Aufregendes also. Nach dem Submit geht's auf der selben Seite mit Perl los:

      init "events";
      if (!($_range_length)) {
      $_range_length=$browseamount;
      $_range=0; }
      

      $rparam.="&_Datum_Tag~=$tag" if $tag;
      $rparam.="&_Datum_Monat~=$monat" if $monat;
      $rparam.="&_Datum_Tag~=$jahr" if $jahr;
      $rparam.="&Ort~=$ort" if $ort;
      $rparam.="&_fullsearch~~$such" if $such;
      if($rparam==""){
      $rquery=$_amount_all;
      }else{
      $rquery=$_amount_query;
      }
      my $newrange=$_range+$_range_length;
      my $oldrange=$_range-$_range_length;
      $oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
      

      $BrowseLine ="<tr><td colspan=\"3\" align=\"center\">[ &nbsp; ";
         
      if ($oldrange>=0) {
      $BrowseLine .= "<a href=\"$BPpath/$basepath&range=$oldrange,$_range_length$rparam\">Vorherige Seite</a> &nbsp; | "; } 
      else {
      $BrowseLine .= "Vorherige Seite &nbsp; | &nbsp; "; }
      $BrowseLine .= "<a href=\"#suchen\">suchen</a> &nbsp; | &nbsp; ";
         
      if ($newrange<$rquery) {
      $BrowseLine .= "<a href=\"$BPpath/$basepath&range=$newrange,$_range_length$rparam\">N&auml;chste Seite</a> &nbsp; ]"; } 
      else {
      $BrowseLine .= "N&auml;chste Seite &nbsp; ]";
      }
      $BrowseLine .= "</td></tr>";
      

      $ort =~ s/\ /\\\ /g;
      get "_Datum_Tag==$tag&_Datum_Monat==$monat&_Datum_Jahr==$jahr&Ort~=$ort&_fullsearch~~$such sort=Datum range=$_range,$_range_length", "events", "DATA";
      if($_amount_query==1){
      $eintr="ausgewählter Eintrag";
      }else{
      $eintr="ausgewählte Einträge";
      }
      out "<tr><td colspan=\"3\" align=\"center\"><h3>( $_amount_query $eintr )</h3></td></tr>";
      

      out "<tr><td colspan=\"3\"><br></td></tr>";
      out $BrowseLine;
      out "<tr><td colspan=\"3\"><br></td></tr>";
      out "<tr><td colspan=\"2\" class=\"s\">Wann:</td><td class=\"s\">Wo:</td></tr>";
      

      while (get_next("DATA"))
      {
      $dat=datum($Datum,"Tag. Monatname Jahr");    
      $zeit=datum($Uhrzeit,"Stunde:Minute");
      if(index($Karten,"http://")==0){
      $Karten="<a href=\"$Karten\" target=\"_blank\">$Karten</a>";
      }
      out "<tr bgcolor=\"#cceedd\"><td>$dat</td><td>$zeit Uhr</td><td>$Ort</td></tr><tr><td colspan=\"3\">$Veranstaltung</td></tr>";
      out "<tr><td>Karten:</td><td colspan=\"2\">$Karten</td></tr>" if $Karten;
      out "<tr><td>Email:</td><td colspan=\"2\"><a href=\"mailto:$Mail\">$Mail</a></td></tr>" if $Mail;
      out "<tr><td colspan=\"3\"><br></td></tr>";
      }
      out $BrowseLine;
      

      Wie gesagt, ohne Abfrage geht die Blätterfunktion tadellos, und mit dem Code, wie ich ihn jetzt hab, wird auch das Suchergebnis korrekt angezeigt, und man kann einmal nach vorn blättern. Dann aber sind die übergebenen Variablen weg. Klar, man könnte sie auch in einem anderen Form speichern und dieses mit der Blätterfunktion abschicken, dann wären sie wieder da. Aber ich denke, da gibt's bestimmt eine viel einfachere Lösung.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 28.März.2003, 16:23.
    Re: Sorry, funzt nicht.

      soooo: du mußt die vars anders übergeben
      <input name="ort="> usw
      dann stehen sie in %_get
      da du bei get die abfrage schon fertig eingebaut hast, müssen die vars wieder im %_get landen. mit 
      $rparam.="&_Datum_Tag~=$tag" if $tag;
      
      landen sie im %_sel.

      Also
      $rparam.="&tag=$_get{tag}" if $_get{tag};
      $rparam.="&monat=$_get{monat}" if $_get{monat};
      
      Hier ist wichtig, das die vars nur mit einem = übergeben werden.

      Sander

     Antworten

    Beitrag von Mattias (110 Beiträge) am Freitag, 28.März.2003, 17:03.
    Ich krieg's einfach nicht hin

      Das mit $_get{xxx} hatte ich schon probiert, auch mit $_cgi{xxx} und sogar mit $_put{xxx}. Jetzt hab ich aus dem Inputnamen mal das ":" rausgenommen. Nun wird mit $_get{xxx} der Ort ein Mal übergeben (wie vorher), dann ist wieder zappenduster.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 28.März.2003, 20:20.
    Re: Ich krieg's einfach nicht hin

      bitte poste das komplette form mit deinem kompletten Code...

      ist doch gar nicht so schwer :-)

     Antworten

    Beitrag von Mattias (110 Beiträge) am Freitag, 28.März.2003, 20:53.
    Juhuu, hab's geknackt!!!

      Hab mir die Vars mal der Reihe nach ausgeben lassen. Das Problem war, dass $ort nach dem Submit im %_get landet und nach dem Blättern im %_sel. Hab ich also je eine Zeile mit $_get{xxx} und eine mit $_sel{xxx} gemacht, und jetzt passt es. Knifflig war noch der Zeitpunkt der Abfrage, der muss direkt hinter der Definition von $_range_length liegen, sonst verwurschtelt mir die Blätterfunktion die Variablen.

      Trotzdem vielen Dank, der Tipp mit den Hashes war Gold wert! Gruß Mattias.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 28.März.2003, 21:12.
    Re: Juhuu, hab's geknackt!!!

      das er in %_sel landet liegt bestimmt daran, das du im link == stehen hast

     Antworten

    Beitrag von Mattias (110 Beiträge) am Freitag, 28.März.2003, 15:14.
    Sorry, funzt nicht.

      $_sel{xxx} liefert bei jedem Aufruf kein Ergebnis. Was mache ich falsch?
      

     Antworten


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