Re: Felder mit "Eingabezwang" definieren - 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 Fäberer (3 Beiträge) am Montag, 30.Mai.2005, 23:03. WWW: www.jenisch.info
    Re: Felder mit "Eingabezwang" definieren

      Lieber HemplR

      "In den Wald geschickt" ist doch gar zu hart ausgedrückt! Du hast mir ja wieder viel geholfen, ich habe wieder was gelernt, ..... und vielleicht, man soll die Hoffnung nie aufgeben, findet eines Tages ein "Low-Level-Befehle-Programmierer" des Rätsels Lösung..... einstweilen läuft's halt, wie's läuft.... ist ja zum Glück keine Seite, wo Existenzen von abhängen, nur ein paar Herzblutstropfen *grins*

      Gute Nacht wünscht

      der Fäberer


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Fäberer (3 Beiträge) am Freitag, 27.Mai.2005, 10:55. WWW: www.jenisch.info
    Felder mit "Eingabezwang" definieren

      Hallo

      Schon wieder ich!

      So, wie mein Formular http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/jenischinfo/eingabeformular jetzt dasteht, können Leute alles leer lassen und abschicken. Das erzeugt nicht etwa eine Fehlermeldung, sondern einen leeren DB-Eintrag.

      Ich habe die Doku und das Forum durchsucht. Doch wurde ich leider nicht wirklich fündig.

      http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&kennung=33 weist zwar den Befehl "Eingabe nötig" im Feld "Link" aus, was so auch stimmt. In meiner DB-Verwaltung kann ich aber in den andern Feldern (Text, Datum, etc.) kein "Eingabe nötig" durch anklicken definieren.

      Wie kann ich also ein Datumsfeld und ein Textfeld zu "Zwangsfeldern" machen?

      Schmeisst mich raus, bevor Ihr verzweifelt ;-) Ansonsten danke ich für die Hilfe ;-)

      Es grüsst Euch

      der Fäberer

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 27.Mai.2005, 12:13.
    Re: Felder mit "Eingabezwang" definieren

      hihi - da biste ja selbst dahinter gekommen mit der richtigen Syntax fürs Eingabeformular - wusste ich nicht mal, ich benutze kein do...
      Ist halt doch ein Problem mit der Doku...

      mhm - das mit der Abfrage auf leere Felder ist jetzt doch etwas komplizierter, da muss dann ein kleiner Perl-Block mit Abfragen mit rein.
      Schau mer mal:
      ---schnipp
      <perl>
      

      -----schnipp
      <perl>
      # wenn Parameter für Speichern und der notwendige Systemhash vorhanden ist
      if ($cmd eq "add" && %_put){ 
      # prüfen wir die einzelnen übergebenen Feldinhalte ab (nur einfacher Check!)
      $a_fehler = "Bitte Geburtstag angeben<br>" if $_Geburtstag_Tag eq "" || $_Geburtstag_Monat eq "";
      $a_fehler .= "Bitte Jahrgang angeben (nur Zahl)<br>" if $Jahrgang eq "" || $Jahrgang =~ m/\D/;
      $a_fehler .= "Bitte Chatnick angeben" if $Chatnick eq "";
      $a_fehler .= "Bitte Vorname angeben" if $Vorname eq "";
      $a_fehler .= "Bitte $Nachname angeben" if $Nachname eq "";
      $a_fehler .= "Bitte eMail-Adresse angeben" if $email eq "";
      }
      # Wenn Fehler vorhanden sind, Parameter fürs Speichern und zugehörigen Systemhash löschen
      if ($a_fehler ne ""){
      $cmd = "" ;
      %_put = undef;
      }
      </perl>
      $a_fehler
      <do action=input>
      <do action=list listtype=add db=/jenischinfo/Geburtstagskalender_jenischer_Chat >
      
      ------schnipp
      Ist wieder nicht getestet, aber so ähnlich müsste es funktionieren - du kriegst das doch hin ;-)

     Antworten

    Beitrag von Fäberer (27 Beiträge) am Freitag, 27.Mai.2005, 19:35. WWW: www.jenisch.info
    Re: Felder mit "Eingabezwang" definieren

      Lieber Hemplr

      Unter dem Sofa liegt der Strand? (kennst Du den 68er-spruch "unter dem Pflaster liegt der strand"? Rest der Assoziation überlasse ich Dir...)

      Vielen Dank für die schon wieder sehr schnelle Hilfe und die "Blumen".
      Zitat:"Ist wieder nicht getestet" - wär ja noch schöner, wenn solche Schnelldenker und -poster auch alles noch selber testen müssten...Irgendwas muss ich ja auch noch selber tun... ;-)
      zitat: "du kriegst das doch hin" - Doch leider, nein, irgendwie schaff ich es (noch) nicht ganz....

      Ich habe Deinen Schnipsel zuerst mal auf die bei mir nötige "Minimalvariante" von einem Pflichtfeld (Chatnick) reduziert. Da das Datum-Feld ja einen vorgegebenen Startwert (nämlich "heute") hat, ist dort logischerweise das Ergebnis nie = 0.

      Wenn jetzt das Formular "blanko" abgeschickt wird, ergibt sich ein Paradox.
      Der User bekommt die Fehlermeldung "bitte Chatnick eingeben", gleichzeitig generiert die DB einen absolut leeren Eintrag, der also defacto nur aus einer ID und sonst nix besteht... (auch ohne Datum, sic!) Das kann man zwar zur not so lassen, dann muss ich einfach von zeit zu zeit die leeren Einträge von hand löschen.

      Der Schnipsel sieht jetzt so aus:
      ---schnipp
      <perl>
      # wenn Parameter für Speichern und der notwendige Systemhash vorhanden ist
      if ($cmd eq "add" && %_put){
      # prüfen wir die einzelnen übergebenen Feldinhalte ab (nur einfacher Check!)
      $a_fehler .= "<b><font size='12'>Bitte Chatnick angeben</font></b><br>" if $Chatnick eq "";
      }
      # Wenn Fehler vorhanden sind, Parameter fürs Speichern und zugehörigen Systemhash löschen
      if ($a_fehler ne ""){
      $cmd = "" ;
      %_put = undef;
       }
      </perl>
      $a_fehler
      <do action=input>
      <do action=list listtype=add db=/jenischinfo/Geburtstagskalender_jenischer_Chat >
      
      -----/schnipp

      Als weiteres "Schmankerl" habe ich trotzdem noch was zum aktuellen Datum überlegt. Eine weitere Fehlerquelle könnte ja sein, dass User einen nick eingeben, nicht jedoch das Datum von "heute" zu "mein Geburtstag" verändern.
      Deshalb hab ich folgendes probiert:

      ---schnipp
      <perl>
      $b_gebheute = "Du hast <b>HEUTE</b> Geburtstag? Herzliche Gratulation!<br>Falls das eine Fehleingabe war, bitte ändern!<br>" if $_Geburtstag_Tag eq $aktuelltag and $_Geburtstag_Monat eq $aktuellmonat;
      }
      </perl>
      $a_fehler
      $b_gebheute
      <do action=input>
      <do action=list listtype=add db=/jenischinfo/Geburtstagskalender_jenischer_Chat >
      
      ----/schnipp

      (ergänzend zu obigem eingesetzt)
      Das scheint irgendwie der Spur nach richtig zu sein, aber irgendwas (die DB?) zu überfordern.... Ich hab stundenlang "gepröbelt". Mal war das Ergebnis wie oben beschrieben, mal sogar ganz korrekt (staun), dann wieder wurde kein DB - Eintrag erzeugt, obwohl 2x auf "submit" gedrückt (1. Mal simuliert mit "aus versehen heute", 2. Mal mit "korrigiertem Datum")

      in selfhtml habe ich dann noch versucht, irgendwie einen Befehl zu finden, der mit "if" funktioniert und die $a_fehler-Abfrage nur startet, wenn $b_gebheute kein Ergebnis brachte. Ich hoffte, damit die Sache in Griff zu bekommen. Doch leider wurde ich nicht fündig....

      Vom "Verzweifeln" weit entfernt, doch leider momentan "am Ende meines lateins" angelangt, grüsst Euch herzlich

      der Fäberer

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Sonntag, 29.Mai.2005, 11:12.
    Re: Felder mit "Eingabezwang" definieren

      mhm - nun hab ich mal ein halbes Stündchen probiert, so richtig bin ich auch nicht dahintergestiegen...mal werden leere Datensätze abgespeichert, mal nicht...und egal, ob gespeichert wird oder nicht, es kommt immer die Meldung:
      "Eintrag gespeichert..."
      Das ist echt unbefriediegend - ich mus gestehen, dass ich die LowLevel-Befehle von BasePortal schon Jahre nicht mehr nutze.
      Tut mir leid, dich in den Wald geschickt zu haben, aber ich komm hier auch nicht weiter, vielleicht erbarmt sich ja jemand mit Erfahrung.

     Antworten

    Beitrag von Fäberer (3 Beiträge) am Montag, 30.Mai.2005, 23:03. WWW: www.jenisch.info
    Re: Felder mit "Eingabezwang" definieren

      Lieber HemplR

      "In den Wald geschickt" ist doch gar zu hart ausgedrückt! Du hast mir ja wieder viel geholfen, ich habe wieder was gelernt, ..... und vielleicht, man soll die Hoffnung nie aufgeben, findet eines Tages ein "Low-Level-Befehle-Programmierer" des Rätsels Lösung..... einstweilen läuft's halt, wie's läuft.... ist ja zum Glück keine Seite, wo Existenzen von abhängen, nur ein paar Herzblutstropfen *grins*

      Gute Nacht wünscht

      der Fäberer

     Antworten

    Beitrag von pr)web (1 Beitrag) am Mittwoch, 22.März.2006, 18:56.
    Re: Felder mit "Eingabezwang" definieren + BP-Vorschlag

      ich habe das gleiche problem und leider auch keine lösung gefunden.

      das ganze könnte man locker umgegehen wenn es ein "low-level parameter Hidden" geben würde. zbs: hidden=Formfield,Value.

      Das würde so manch selbstgemachtes input formular ersparen!

      Dieses kleine feature wäre eine echte bereicherung für BP.

     Antworten

    Beitrag von Claus (4645 Beiträge) am Mittwoch, 22.März.2006, 19:30.
    Re: Felder mit "Eingabezwang" definieren + BP-Vorschlag

      wenn Du mal in die Bibliothek (von baseportal in Deinem Account) gehst und dir mal den Quelltext vom Forum von Christoph anschaust, wirst auch Du vielleicht?? eine kleine "Erleuchtung bekommen;-))

      der interessante Teil ist ein perl-Bereich und fängt mit

      if(%_put)
      {
      unless($Vorschau)
      {
       
      get "Id==#";
      

      $emsg.="Bitte gebe Deinen Namen ein! " if $_put{Name} eq "";
      $emsg.="Bitte gebe einen Titel ein! " if $_put{Titel} eq "";
      

      ........
      an

      musst Du natürlich 1. verstehen und 2. für Deine Bedürfnisse anpassen;-))

      Gruß

      Claus

     Antworten


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