Re: @CB problem im miet-bp mit zahl-feld - 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 olaf (59 Beiträge) am Montag, 10.November.2003, 12:04.
    Re: @CB problem im miet-bp mit zahl-feld

      mir ist grad eingefallen das ich für das unless (){ das } vergessen hab. wenn du das mal ausprobieren möchtest darfste das nicht vergessen.

      gruss


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von sascha (539 Beiträge) am Sonntag, 9.November.2003, 20:14.
    @CB problem im miet-bp mit zahl-feld


      hallo christoph,

      ich gebe besuchern meines portals die möglichkeit, sich inhalte, abhängig vom preis aufzulisten.
      dazu nutze ich folgendes was auch klappt:
      feld: zahl / sortierung: zahl / sortierung: ja

      <input type=text name="Preis<=" size=8>
       
      

      problem ist folgendes:
      wenn die anbieter ihre angebote eintragen, müssen sie den preis mit einem "punkt" als trennzeichen eingeben.

      da aber das "komma" das gängigste trennzeichen ist, gibt es dauernd irritationen.

      ich bin ja schon froh, daß die nutzer es schaffen die preise mit 2 dezimalstellen nach dem trennzeichen einzugeben, aber die sache mit dem punkt versteht keiner :-(

      gibt es irgendwie die möglichkeit, wie ich das mit dem komma anstatt des punktes hinkriegen kann??

      danke
      sascha

     Antworten

    Beitrag von olaf (59 Beiträge) am Sonntag, 9.November.2003, 22:06.
    Re: @CB problem im miet-bp mit zahl-feld

      moin sascha,

      erlaube deinen usern doch beides (denk an service ;-) und die bequemlichkeit der nutzer ) und wandle das komma in einen punkt um.

      $_put{"preis<"}=~s/,/./;
      

      vielleicht noch eine kleine idee zu den 2 stellen nach dem punkt. formatiere sie mit sprintf.

      $_put{"preis<"}=sprinf "%.2f",$_put{"preis<"};
      

      gruß

     Antworten

    Beitrag von sascha (539 Beiträge) am Montag, 10.November.2003, 09:17.
    Re: @CB problem im miet-bp mit zahl-feld

      hallo olaf,

      das mit dem punkt und komma klappt bei der eingabe.
      ich habe aber eine suchmaske mit suche nach preislimit.
      <input type=text name="Preis<=" size=8>
      

      wenn ich die eingabeseite so ändere, wie du das empfiehlst, klappt das nicht mehr, da ich in db das feld "preis" zu einem textfeld machen muss.

      sascha

      hier mein perl, wenn ich das mit punkt und komma einfüge:
      <perl>
      

      if ($cmd eq "add" || $cmd eq "mod") {

      $err.="<font face=verdana,arial,helvetica size=2 color=#FF0000> -Preis<br>" if $_put{"Preis<"}=~s/,/./;
      

      $err.="<font face=verdana,arial,helvetica size=2 color=#FF0000> -Preis<br>" if $_put{Preis} eq "";

        if ($err ne "") {
         out "<b><font face=verdana,arial,helvetica size=2 color=#FF0000>Folgende Felder wurden nicht ausgefüllt:</b> <br>$err";
        } 
      }
      if ($err ne ""){
      undef %_put;
      }
      </perl>
      

     Antworten

    Beitrag von olaf (59 Beiträge) am Montag, 10.November.2003, 10:57.
    Re: @CB problem im miet-bp mit zahl-feld

      moin sascha,

      ich dachte eher daran die eingabe die gemacht wurde soweit zu ändern das die auf jeden fall passt.

      ich gehe jetzt mal davon aus, das die variable in der der user seinen suchwert eingibt beziehungsweise das das feld $_put{Preis} heisst, richtig?


      <perl>
      

      if ($cmd eq "add" || $cmd eq "mod") {
       
      $_put{Preis}=~s/,/./; # damit wird das erste komma in einen punkt
      

      # umgewandelt, wenn es denn ein komma gibt. =~s heisst substitution also
      # soviel wie ersetzen.
      

      $_put{Preis}=sprinf "%.2f",$_put{Preis}; # damit wird der wert formatiert.

      # egal was da nun in der variablen drin steht, das sprinf "%.2f" macht
      # daraus auf jeden fall einen zahlen wert mit zwei stellen nach dem punkt.
      # d.h. auch wenn nix in der variablen drinn steht, macht das sprintf "%.2f"
      # daraus 0.00
      # auch wenn da keine zahl sondern irgendwas anderes drin steht, macht das
      # sprintf "%.2f" daraus 0.00
      

      }
      </perl> 
      

      hier nach hast du in der variablen $_put{Preis} einen zahlen wert mit punkt, auch wenn ein komma eingegeben wurde, mit zwei stellen nach dem punkt. auch wenn du keinen string gebrauchen kannst, kannst du aber $_put{Preis} da nach auch als zahlenwert weiterverarbeiten ;-).
      wenn du keine zwei stellen nach dem komma brauchst dann lass das sprintf halt einfach weg ;-). dann hast du aber auch nicht mehr unbedingt einen zahlenwert. expierimentiere doch mal mit dem sprintf. eine kleine hilfe dazu findest du unter http://www.perldoc.com/perl5.6/pod/func/sprintf.html .

      wenn du das hier schreibst:
      $err.="<font face=verdana,arial,helvetica size=2 color=#FF0000> -Preis<br>" if $_put{"Preis<"}=~s/,/./;
      dann wer $err.= erst dann aus geführt, wenn der substitutionsoperator auch was ersetzt hat. ersetzt er nix, dann war auch kein komma vorhanden. wenn er aber aus dem komma einen punkt gemacht hat, liegt ja eigentlich kein fehler mehr vor auch wenn der user was "falsches" eingegeben hat.
      wenn du nur auf ein komma testen wolltest, hätte auch die funktion "$err.="..." if ($_put{Preis}=/,/);" gereicht ;-).
      

      jetzt könnte man noch so freunlich zum user sein und sagen, ok, wenn du einen Preis von 0.00 eingibst (warum auch immer) dann berücksichtige ich halt den preis bei der suche nicht.
      wie du das in deinem script umsetzen könntest, hängt von deinem script ab.
      entweder passt dann der wert von 0 schon oder du machst daraus einen utopisch grossen *g*. spontan könnte man sagen:
      if ($_put{Preis}==0){$_put{Preis}=1E+10;}
      

      auch wenn ich dir mit meinen getippsel nicht weiter helfen konnte, hoffe ich doch wenigstens dir einen tipp gegeben zu haben.

      gruss
      olaf

     Antworten

    Beitrag von sascha (539 Beiträge) am Montag, 10.November.2003, 11:05.
    Re: @CB problem im miet-bp mit zahl-feld

      hi olaf,

      erstmal danke, scheint mir sehr hilfreich.
      muß ich aber erst nochmal 3x durchlesen :-)

      mir ist schonmal sehr geholfen, wenn der user komma und punkt
      eingeben kann.

      das mit dem sprintf nützt mir leider nichts, da man AUCH nach preislimit suchen kann, aber nicht NUR.

      werd mich mal dran versuchen!

      danke
      sascha

     Antworten

    Beitrag von olaf (59 Beiträge) am Montag, 10.November.2003, 11:34.
    Re: @CB problem im miet-bp mit zahl-feld

      dann würd ich dir gerne noch einen kleinen tipp geben, wenn ich darf.

      <perl>
      

      if ($cmd eq "add" || $cmd eq "mod") {
        unless ( $_put{preis}=~/[^\d,.]/ ){ #teste ob nur eine zahl eingegeben worden ist.
          $_put{Preis}=~s/,/./; 
          $_put{Preis}=sprinf "%.2f",$_put{Preis}; 
          if ($_put{Preis}==0){$_put{Preis}=1E+10;}
      }
      </perl>  
      

      das "unless ( $_put{preis}=~/[^\d,.]/ )" testet ob es sich bei der eingabe um eine zahl handelt. wird irgend etwas anderes eingegeben was keine zahl, punkt und komma ist, wird die eingaben nicht als zahl behandelt, sondern als text. allerdings wird auch die eingabe als zahl behandelt, wenn garnichts eingegeben wurde. dann hast du aber als preislimit die 10 milliarden *g*. kann man ja aber auch weg lassen oder diese spezielle eingabe auch noch abfangen ;-). eben das eingegebene "nichts" auch noch irgendwie "defaulten", wenn es geht.

      gruss
      olaf

     Antworten

    Beitrag von olaf (59 Beiträge) am Montag, 10.November.2003, 12:04.
    Re: @CB problem im miet-bp mit zahl-feld

      mir ist grad eingefallen das ich für das unless (){ das } vergessen hab. wenn du das mal ausprobieren möchtest darfste das nicht vergessen.

      gruss

     Antworten

    Beitrag von sascha (539 Beiträge) am Montag, 10.November.2003, 14:38.
    Re: @CB problem im miet-bp mit zahl-feld

      hi olaf,

      egal, was ich ausprobiere, irgendeinen fehler oder lücke habe ich immer.

      es sollte nur klappen, wenn man 2,00 oder 2.00 eingibt und wenn nichts drin steht, darf der eintrag nicht vorgenommen werden.

      den punkt als trennzeichen bräuchte ich nicht einmal, da man sowieso zu 99% das komma nimmt.
      man kann zwar in der db den feldtyp zahl mit trennzeichen komma nehmen, dann funktioniert aber die selektion nicht !!

      @CB
      
      wenn die eigenschaften des feldtyps zahl mit trennzeichen komma genauso wären wie mit trennzeichen punkt, hätte ich kein problem!

      sascha

     Antworten


     
 Liste der Einträge von 33900 bis 34050: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!