http://qs1969.pair.com?node_id=263527

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I currently have the following for some mandatory fields:

$Mandatory_Fields="*Customer Name*Customer Email*Phone Number*Payment +Method*BillingAddressLine1*BillingCity*BillingPostCode*CardStartDate* +CardIssueNo*CardSecurityCode";
Idealy I would like to make the CardStartDate, CardIssueNo and CardSecurityCode only mandatory if credit card as a payment method is selected. Is there anything like an immediate if I could place in there to only make these mandatory if a radio button is true? I hope I have explained this clearly. Thanks as always. Simon

Replies are listed 'Best First'.
Re: Mandatory Fields
by ehdonhon (Curate) on Jun 05, 2003 at 22:25 UTC

    Make it a bit more readable while you're at it.

    $Mandatory_Fields= '*' . join( '*', 'Customer Name', 'Customer Email', 'Phone Number', 'Payment Method', 'BillingAddressLine1', 'BillingCity', 'BillingPostCode', param( 'Payment Method' ) eq 'Credit Card' ? qw( CardStartDate CardIssueNo CardSecurityCode ) : () );

    Update: I see that Anonymous wants a '*' before each entry including the first one, not just as a delimeter.
      Hi, I have just tried:
      $Mandatory_Fields= '*' . join( '*', 'Customer Name', 'Customer Email', 'Phone Number', 'Payment Method', 'BillingAddressLine1', 'BillingCity', 'BillingPostCode', param( 'payMethods' ) eq 'Credit Card' ? qw( CardStartDate CardIssueNo CardSecurityCode ) : () );
      But I am getting an internal server error when trying it out. Any ideas please?

        Try running:

        perl -c scriptname

        Internal server errors are usually the result of your code not compiling. If that is the case, running perl -c will give you a more helpful error message.

Re: Mandatory Fields
by silent11 (Vicar) on Jun 05, 2003 at 22:04 UTC
    using CGI.pm you could.
    if ( $cgi->param("radiobutton") eq "true" ) { $Mandatory_Fields = "this and that and that..."; }else { $Mandatory_Fields = "this and that..."; }


    -silent11