Problem mit Leerzeichen im Textfeld wenn Ausgabe 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 Babsie (13 Beiträge) am Montag, 25.September.2006, 16:09.
    Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Hallo,

      ich hab die Programmierzeilen hier im Forum gefunden und hänge jetzt an einem Problem fest :-(
      Mir werden alle Einträge ordentlich angezeigt, soweit das Feld "Ort" NUR aus 1 Wort besteht.
      Was mache ich denn bei Baden Baden oder bei Bad Münstereifel ?????????

      Kann mir jemand helfen, wie ich das mit dem blöden Leerzeichen hinbekomme?

      Danke
      Babsie


      <perl>
      out <<EOF;
      <form action='....' target='Daten' method='post' enctype='multipart/form-data'>
      

      EOF

      get "Ort==*", "Datei", "erghash";
      while(get_next("erghash")) {
      $opOrt{$Ort}++
      }
      foreach my $opOrt(sort keys %opOrt){
      $a_opOrt .= "<option value=$opOrt>$opOrt";
      }
      my $sl = "selected" if $fort eq "";  
      out<<EOF;
      <select name="fort=" value='$fort'>$a_opOrt
      </select> 
      <input type="text" value="ZEIGEN">
      </form>
      </center>
      EOF
      </perl>
      


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Babsie (13 Beiträge) am Montag, 25.September.2006, 16:09.
    Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Hallo,

      ich hab die Programmierzeilen hier im Forum gefunden und hänge jetzt an einem Problem fest :-(
      Mir werden alle Einträge ordentlich angezeigt, soweit das Feld "Ort" NUR aus 1 Wort besteht.
      Was mache ich denn bei Baden Baden oder bei Bad Münstereifel ?????????

      Kann mir jemand helfen, wie ich das mit dem blöden Leerzeichen hinbekomme?

      Danke
      Babsie


      <perl>
      out <<EOF;
      <form action='....' target='Daten' method='post' enctype='multipart/form-data'>
      

      EOF

      get "Ort==*", "Datei", "erghash";
      while(get_next("erghash")) {
      $opOrt{$Ort}++
      }
      foreach my $opOrt(sort keys %opOrt){
      $a_opOrt .= "<option value=$opOrt>$opOrt";
      }
      my $sl = "selected" if $fort eq "";  
      out<<EOF;
      <select name="fort=" value='$fort'>$a_opOrt
      </select> 
      <input type="text" value="ZEIGEN">
      </form>
      </center>
      EOF
      </perl>
      

     Antworten

    Beitrag von sebastian (533 Beiträge) am Montag, 25.September.2006, 16:43.
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      hallo,

      ändere mal dein get folgendermassen:

      get ["Ort", "==", "*"], "Datei", "erghash";
      

      dann holt das get auch mit leerzeichen.

      sebastian

     Antworten

    Beitrag von Claus S. (1671 Beiträge) am Montag, 25.September.2006, 17:03.
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Hallo Babsi,

      die Leerzeichen musst Du maskieren (siehe auch Doku)

      $feld_ort =~ s/ /\\ /g;
      

      Gruss

      Claus

     Antworten

    Beitrag von richard (1187 Beiträge) am Montag, 25.September.2006, 17:03. WWW: posaunenchor-rhoden.de
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Die Ortsnamen müssen in doppelte Anführungszeichen - versuchs mal so:

       ...
       get "Ort==*", "Datei", "erghash";
       while(get_next("erghash")) {
       $Ort = "\"$Ort\"";  ## diese Zeile einfügen
       $opOrt{$Ort}++
       ...
      

     Antworten

    Beitrag von Babsie (13 Beiträge) am Montag, 25.September.2006, 23:09.
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Hallo Richard, Claus S. und Sebastian,

      danke für Eure Hilfe, doch damit klappt es nicht :-(
      Vielleicht liegt es ja auch an meiner Ausgabeseite?

      Sorry, daß ich hier nicht wirklich weiß, was ich tue.

      Babsie


      <perl>
      $append = "&Ort~=$_sel{Ort}" if $_sel{Ort} ne "";
      $append = $append."&Bereich~=$_sel{Bereich}" if $_sel{Bereich} ne "";
      

      $range=$_get{range}||"0,()";
      $Rubrik||="Acts";
      

      get "Rubrik==Acts sort=Ort Ort==$Ort Ort==$fort range=$range", "Datei";

      #------------------------------------------------
      out "<tr align=center>"; 
      while(get_next(Datei))
      {
      $counter++; 
      <left>; 
      if($counter%4==0){$trenner = "</tr><tr>"; 
      }
      else{$trenner = ""; 
      }
      $rubrik_html = convert_html($Rubrik);
      out "<td>
      <a href='http:...'>
      

      <img src='http://www....' width='100' ></a></td>$trenner";
      } 
      out "</tr></table>"; 
      

      </perl>

     Antworten

    Beitrag von richard (1187 Beiträge) am Dienstag, 26.September.2006, 07:58. WWW: posaunenchor-rhoden.de
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Vielleicht solltest Du hier erstmal schreiben, was Du tatsächlich machst bzw. machen willst.

      Es würde also damit anfangen, daß Du erst mal schreibst was das denn überhaupt werden soll. Und dann müßtest Du auch konkreter mitteilen, was nicht funktioniert. Wenn ich Dein Ausgangsposting richtig verstanden hatte, bestand Dein Problem darin, daß Parameter (die Ortsnamen) für die Inhalte eines Arrays nicht wunschgemäß verarbeitet worden sind, wenn Sie aus mehreren Wörtern bestanden.

      Du hast jetzt 3 Lösungsvorschläge verworfen, müßtest allerdings mal schreiben, welche Ergebnisse dabei herausgekommen sind, also, keine Änderung, gar keine Ausgabe, ganz andere Ausgabe, Fehlermeldung?.

      Konkret, was ist rausgekommen, als Du die von mir vorgeschlagene, zusätzliche Zeile eingefügt hast?


      Am Rande. In der Regel ist es immer sinnvoll komlexe Projekte in kleinen Schritten aufzubauen. Also erst mal eine ganz allgemeine Ausgabe der Daten mit get oder loop und dann Schritt für Schritt anpassen oder ausbauen, was man halt so braucht. (Filter für die angezeigten Daten, Links, Auswahllisten oder was auch immer). Wenn Du gar keine Ahnung von Perl hast, solltest Du das auch nicht benutzen.

     Antworten

    Beitrag von Babsie (13 Beiträge) am Dienstag, 26.September.2006, 08:52.
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Guten Morgen Richard,

      sorry, hatte das ganze irgendwie immer an die falsche Stelle gesetzt!
      Bis auf einen kleinen Schönheitsfehler klappts auch :-)

      Im Dropdownfeld wird jetzt statt der Leerstelle das \ und die " angezeigt.
      Ist mir schon klar, daß es zum Aufruf gebraucht wird, aber sieht doch blöd aus, oder?

      Hier mein Link, hoffe es ist dann klar, was ich meine.
      http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/Babsie99/Seite1

      Danke
      Babsie



      <perl>
      out <<EOF;
      <form action='http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/Babsie99/Seite2' method='post' enctype='multipart/form-data'>
      

      EOF

      get ["Ort", "==", "*"], "Datei", "erghash";
      

      while(get_next("erghash")) {
      $Ort =~ s/ /\\ /g;
      $Ort = "\"$Ort\""; ## diese Zeile einfügen
      $opOrt{$Ort}++
      }
      foreach my $opOrt(sort keys %opOrt){
      $a_opOrt .= "<option value=$opOrt>$opOrt";
      }
      my $sl = "selected" if $fort eq "";
      out<<EOF;
      <select name="fort=" value='$fort'>$a_opOrt
      </select>
      <input type="submit" value="ZEIGEN">
      </form>
      </center>
      EOF
      </perl>
      

     Antworten

    Beitrag von richard (1187 Beiträge) am Dienstag, 26.September.2006, 11:19. WWW: posaunenchor-rhoden.de
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Es ist wirklich sinnvoll, die Dinge Schritt für Schritt abzuarbeiten und nicht alles gleichzeitig einzubauen, was einem einfällt oder was man irgendwo gelesen hat. Man hat dann nämlich keinen Überblick mehr, welche Änderung zu welchen Konsequenzen führt.

      Als erstes solltest Du deshalb diese beiden Zeilen


       $Ort =~ s/ /\\ /g;
       $Ort = "\"$Ort\""; ## diese Zeile einfügen
      

      wieder rausnehmen und Dir das Ergebnis ansehen.

      Wenn Du mit dem Ergebnis nicht zufrieden bist, baust Du die erste Zeile wieder ein und überprüfst die Ausgabe. Wenn diese immer noch nicht in Ordnung ist baust Du die erste Zeile wieder aus und stattdessen die zweite ein.

     Antworten

    Beitrag von Babsie (13 Beiträge) am Dienstag, 26.September.2006, 11:38.
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Hallo Richard,

      das habe ich auch gemacht!
      nehme ich eine oder beide zeilen raus, wird es mir im optionsfeld zwar richtig angezeigt, d.h. leerzeichen statt \ oder ohne ",
      aber dann klappt es nicht!

      es klappt nur, wenn die beiden zeilen drin sind.
      $Ort =~ s/ /\\ /g;
      $Ort = "\"$Ort\""; ## diese Zeile einfügen
      

      Babsie

     Antworten

    Beitrag von richard (1187 Beiträge) am Dienstag, 26.September.2006, 13:38. WWW: posaunenchor-rhoden.de
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Das ist alles ein bißchen seltsam. Aber wenn ich Dich richtig verstanden habe, bist Du jetzt grundsätzlich damit zufrieden wie das ganze funktioniert, möchtest aber noch die zusätzlichen Zeichen \ bzw. " aus der Anzeige des Optionsfeldes heraus haben.

      Auch wenn es wahrscheinlich besser wäre, Deine ganze Konstruktion noch einmal zu überdenken, schlage ich vor (solange hier niemand etwas sinnvolleres postet), daß zu flicken, indem Du diese

       foreach my $opOrt(sort keys %opOrt){
       $a_opOrt .= "<option value=$opOrt>$opOrt";
      

      zwei Zeilen durch das folgende ersetzt:

       foreach my $opOrt(sort keys %opOrt){
       $opOrt_aus = $opOrt;  
       $opOrt_aus =~ s/"//g; 
       $opOrt_aus =~ s/\\//g;
       $a_opOrt .= "<option value=$opOrt>$opOrt_aus";
      

     Antworten

    Beitrag von Babsie (13 Beiträge) am Dienstag, 26.September.2006, 13:56.
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      Du bist ein Schatz :-))

      Danke - es funktioniert!

      Babsie

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Dienstag, 26.September.2006, 17:13.
    Re: Problem mit Leerzeichen im Textfeld wenn Ausgabe im perl :-((

      nunja- das mag zwar ein Workaround sein, aber so richtig "sauber" ist das nicht.
      Besser wäre entweder zur Laufzeit die Leerzeichen zu maskieren oder den get-Ausdruck so zu bauen wie sebastian das geschrieben hat.
      Also mal zum selbst weiterdenken:
      1)Maskieren zur Laufzeit:
      <perl>
      $append = "&Ort~=$_sel{Ort}" if $_sel{Ort} ne "";
      $append = $append."&Bereich~=$_sel{Bereich}" if $_sel{Bereich} ne "";
      

      $range=$_get{range}||"0,()";
      $Rubrik||="Acts";
      # das get ist etwas "konfus, das muss bereinigt werden (Ort=$Ort und 
      # Ort=$fort ist irgendwie unlogisch, entweder kommt als Parameter der Ort 
      # oder der gefilterte Wert aus dem Formularfeld fort, da fort als letzter 
      # Filterparameter eingegeben wurde, wird eh der erste Filterwert 
      # überschrieben.
      # get "Rubrik==Acts sort=Ort Ort==$Ort Ort==$fort range=$range", "Datei";
      # so wäre es besser und IMHO sinnvoller, ein paar Sachen müssen vorher noch 
      # hin, u.a. die Maskierung der Leerzeichen, damits auch geholt wird und ein 
      # definiertes Vorbelegen von $fort, damit keine Fehler kommen, wenn kein 
      # Filterwert übergeben wird:
      $fort ||= "*"; # Parameter $fort mit dem Stern für alle Datensätze 
                     # vorbelegen, wenn er nicht vorhanden ist
      $fort =~ s/ /\\ /g; # Leerzeichen in $fort maskieren
      get "Ort==$fort Rubrik==Acts sort=Ort range=$range", "Datei";
      # Erklärung:
      # Hole alle Datensätze, deren Wert gleich dem im Parameter fort übergebenem 
      # Wert ist (wenn kein Parameterwert übergeben wurde, werden alle Datensätze
      # mit allen beliebigen Werten für Ort angezeigt) und deren Rubrik gleich dem
      # Wert "Acts" entspricht, sortiere diese nach Ort
      # 
      #------------------------------------------------
      # hier muss IMHO noch etwas am HTML gefeilt werden, aber das soll nicht mein 
      # Thema sein ;.)
      out "<tr align=center>";
      while(get_next(Datei))
      {
      $counter++;
      <left>;
      if($counter%4==0){$trenner = "</tr><tr>";
      }
      else{$trenner = "";
      }
      $rubrik_html = convert_html($Rubrik);
      out "<td>
      <a href='http:...'>
      

      <img src='http://www....' width='100' ></a></td>$trenner";
      }
      out "</tr></table>";
      

      </perl>

      Viel Spass beim Nachbauen und dem Versuch, zu verstehen.

     Antworten


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