Formulareingabe abwarten - 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 Helmut Meisl (119 Beiträge) am Dienstag, 9.September.2014, 11:07.
    Formulareingabe abwarten

      Ich möchte über ein Formular eine Variable (Datensatz-Id) abfragen und dann den Datensatz mit dieser Id in einer bestimmten Form ausgeben. Das ganze Template funktioniert zwar wie gewollt, es wird aber beim ersten Ausruf bereits alles abgearbeitet, obwohl in das Formular noch keine Datensatznummer eingegeben wurde. Wie kann ich verhindern, dass die Fortsetzung des Templates erst dann erfolgt, wenn zB. die Datensatznummer größer als 0 ist bzw. das Feld nicht leer ist?
      Wäre schön, wenn mir wieder jemand aus dem Forum helfen könnte. Nachstehend der Bereich, um den es geht.

      ---------

      <html>
      <head><title>Zählerdatenversand</title>
      <body>
      <form action="http://domain.domain/cgi-bin/baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data">
      <input type=hidden name="htx=" value="$htx">
      <table>
      <tr><td><font face="Arial, Helvetica, sans-serif" size="2">Welche Datensatz-Nummer senden:</td><td><input type="text" name="NR="></font></td></tr>
      </table></form>
      <perl>
      $anlage = "Zaehler Heizung";
      out "Datensatz = ".$NR."<br>";
      out "Anlage = ".$anlage."<br>";
      </perl>
      

      <perl>
      if ($NR > 0)
      {
      $NR = $NR;
      }else
      {
      $NR = -1;
      }
      out "Datensatz = ".$NR."<br>";
      </perl>
      

      <loop db=energiedatenbank Id==$NR code=perl>
      ... hier steht der weitere Ablauf
      ... das Template sollte stoppen, wenn "else" erfüllt ist.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Helmut Meisl (119 Beiträge) am Dienstag, 9.September.2014, 11:07.
    Formulareingabe abwarten

      Ich möchte über ein Formular eine Variable (Datensatz-Id) abfragen und dann den Datensatz mit dieser Id in einer bestimmten Form ausgeben. Das ganze Template funktioniert zwar wie gewollt, es wird aber beim ersten Ausruf bereits alles abgearbeitet, obwohl in das Formular noch keine Datensatznummer eingegeben wurde. Wie kann ich verhindern, dass die Fortsetzung des Templates erst dann erfolgt, wenn zB. die Datensatznummer größer als 0 ist bzw. das Feld nicht leer ist?
      Wäre schön, wenn mir wieder jemand aus dem Forum helfen könnte. Nachstehend der Bereich, um den es geht.

      ---------

      <html>
      <head><title>Zählerdatenversand</title>
      <body>
      <form action="http://domain.domain/cgi-bin/baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data">
      <input type=hidden name="htx=" value="$htx">
      <table>
      <tr><td><font face="Arial, Helvetica, sans-serif" size="2">Welche Datensatz-Nummer senden:</td><td><input type="text" name="NR="></font></td></tr>
      </table></form>
      <perl>
      $anlage = "Zaehler Heizung";
      out "Datensatz = ".$NR."<br>";
      out "Anlage = ".$anlage."<br>";
      </perl>
      

      <perl>
      if ($NR > 0)
      {
      $NR = $NR;
      }else
      {
      $NR = -1;
      }
      out "Datensatz = ".$NR."<br>";
      </perl>
      

      <loop db=energiedatenbank Id==$NR code=perl>
      ... hier steht der weitere Ablauf
      ... das Template sollte stoppen, wenn "else" erfüllt ist.

     Antworten

    Beitrag von richard (1187 Beiträge) am Dienstag, 9.September.2014, 11:59.
    Re: Formulareingabe abwarten

      Habe ein bißchen Mühe dein Script zu verstehen.

      Jedenfalls kannst du doch nach dem Vorhandensein der Id abfragen (was du doch auch zu tun scheinst (if ($NR > 0)?)) und den weiteren Verlauf/das abarbeiten von diesem Ergebnis abhängig machen.

      Mit "die();" könnte man die weitere Verarbeitung des Templates z.Bsp. direkt vollständig abbrechen.

      if ($NR > 0)
      {
      $NR = $NR;
      }else
      {
      
      die();
      }

      Wobei diese "$NR = $NR;" Zeile irgendwie keinen Sinn zu machen scheint - aber wohl auch nicht schadet.

     Antworten

    Beitrag von Helmut Meisl (119 Beiträge) am Dienstag, 9.September.2014, 12:16.
    Re: Re: Formulareingabe abwarten

      VIELEN DANK, Richard, genau das war es!
      Mit der Abfrage nach der Datensatznummer $NR wollte ich nur sicherstellen, dass keine falschen Daten übermittelt werden. D.h. nur dann, wenn $NR über das Formular bereits befüllt wurde, sollte der Rest der Seite laufen. Da ohne deinen Tipp der Rest auch mit $NR= leer gelaufen ist, habe ich einfach -1 reingeschrieben, da wurde dann "nur" ein Leerjob gemacht.

     Antworten

    Beitrag von richard (1187 Beiträge) am Dienstag, 9.September.2014, 12:42.
    Re: Re: Formulareingabe abwarten

      Und so:

       if (!$NR)
       {
       die();
       }
      

      ?

     Antworten

    Beitrag von Sander (8133 Beiträge) am Dienstag, 9.September.2014, 19:39.
    Re: Re: Formulareingabe abwarten

      mit
      return die();
      bricht man komplett das Template ab, ansonsten nur den <perl>-Block
      

     Antworten


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