Klaus Mock: Prüfen, ob nur ein Eingabefeld ausgefüllt

Beitrag lesen

Hallo,

Kann ich damit auch einen Datenbankeintrag machen, wenn nur zwei Felder von mehreren ausgefüllt sind? Ich möchte nämlich einen Datenbankeintrag dann machen, wenn mindestens ein Feld außer der Kundennummer eingetragen wurde. In meinem Formular existieren auch Kannfelder; deshalb die Prüfung ;-)

In Anlehnung an des Ausgangsposting (die Erwartung einer Funktion 'only' finde ich übrigens toll) könntest Du das eventuell so lösen:

sub only
{
return 0 unless $kdnr;
return 1 if $feld1;
return 1 if $feld2;
return 1 if $feld3;
return 1 if $feld4;
return 1 if $feld5;
return 0;
}

oder wenn Du das Ganze z.B. in einem Hash gespeichert hast:

sub only
{
my($must,$hashref) = @_;

return 0 unless $hashref->{$must};
foreach my $key(keys %$hashref)
  {
  return 1 if $hashref->{$key};
  }
return 0;
}

Aufgerufen wird ersters dann
if(&only)
   {
   &machwas;
   }
else
   {
   &machnix;
   }

und zweiteres

if(&only('kdnr',%werte))
   {
   &machwas;
   }
else
   {
   &machnix;
   }

Aber das gibt es sicherlich noch viele andere Spielarten.

Grüße
  Klaus