Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 1 of 1
  1. #1
    New to the CF scene
    Join Date
    Sep 2010
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Creating Combobox using html in Cgi-Perl

    Actually I have a CGI form which consists of
    textfields and I need a combobox in which I can
    enter my own data dynamically. May be it seems very
    silly question but I am new to cgi-perl as well as
    HTML so no idea what to do. Here is my form:

    Code:
    #!C:\perl\bin\perl.exe
    
    use CGI;
    use CGI qw/:standard/;
    use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
    my $q = new CGI;
    use DBI;
    use CGI qw(:all);
    use strict;
    use warnings;
    print "Content-Type: text/html\n\n";
    print $q->header ( );
    
    if ( $q->param("submit") )
    {
    process_form ( );
    }
    else
    {
    display_form ( );
    }
    
    
    sub process_form
    {
    if ( validate_form ( ) )
    {
     display_form ( );
     }
     }
    
    
    sub validate_form
    {
    my $User_Name = $q->param("User_Name");
    my $User_Password= $q->param("User_Password");
    my $User_Permission = $q->param("User_Permission");
    my $User_Department= join(", ",$q->param
    ("User_Department"));
    my $error_message = "";
    $error_message .= "Please enter your name<br/>" if
     ( !$User_Name );
    $error_message .= "Please enter your Password<br/>" 
     if( ! $User_Password );
    $error_message .= "Please Select a permission<br/>"
     if( !$User_Permission );
    $error_message .= "Please select atleast 1  
    department<br/>" if(!$User_Department);
    
    if ( $error_message )
     {
       display_form (
     $error_message,$User_Name,$User_Password,$User_Permission
     ,$User_Department);
       return 0;
     }
    else
    {
    my $dbh = DBI->connect
    ("dbi:SQLite:DEVICE.db","", "",{RaiseError => 1,
    AutoCommit =>
     1 } );
    my $sql = "SELECT COUNT(UserName) FROM UsersList 
     WHERE UserName='$User_Name'";
    my $sth = $dbh->prepare($sql) or die("\n\nPREPARE 
    ERROR:\n\n$DBI::errstr");
     $sth->execute or die("\n\nQUERY 
    ERROR:\n\n$DBI::errstr");
    my ($n) = $dbh->selectrow_array($sth);
    $sth->finish();
    if ($n > 0) {
    print "Record Already Exists";
    }
     else {
     my $sql = "INSERT INTO UsersList 
     (UserName,Password,Permission,Department) VALUES 
     ('$User_Name ',' 
     $User_Password','$User_Permission','$User_Department')";
      my $sth = $dbh->prepare($sql);
      $sth->execute;
     print "Record Added Successfully";
     $sth->finish();
     $dbh->commit or die $dbh->errstr;
       }
      $dbh->disconnect;
      }
      }
    
         sub display_form
    {
     my $error_message = shift;
    my $User_Name = shift;
     my $User_Password = shift;
    my $User_Permission= shift;
    my $User_Department= shift;
    
    my $User_Permission_Add_sel = $User_Permission 
     eq "Add" ? " checked" : "";
    my $User_Permission_Edit_sel =$User_Permission
    eq "Edit" ? " checked" : "";
    my $User_Permission_Delete_sel =$User_Permission
      eq "Delete" ? " checked" : "";
    my $User_Permission_View_sel =$User_Permission
       eq "View" ? " checked" : "";
    
    my $User_Department_html = "";
    my $dbh = DBI->connect
     ("dbi:SQLite:DEVICE.db","", "",{RaiseError => 1,
      AutoCommit =>
     1 } );
    my $sql = "select DepartmentName from Departments 
      order by DepartmentName";
     my $sth = $dbh->prepare($sql);
      $sth->execute() ;
    
    while (my  $User_Department_option= $sth- 
        >fetchrow_array)
    {
      $User_Department_html.= "<option
      value=\"$User_Department_option\"";
      $User_Department_html.= " selected" if (
       $User_Department_option eq
       $User_Department );
    
       $User_Department_html.= ">$User_Department_option</option
      >";
     }
     $sth->finish();
     $dbh->commit or die $dbh->errstr;
     print <<END_HTML;
     <html>
    <head><title>Form Validation</title></head>
    <body>
    
    <form action="AddUser.cgi" method="post">
    <input type="hidden" name="submit" value="Submit">
    
    <p>$error_message</p>
    
    
    <TABLE BORDER="1" align="center">
     <TR>
    <TD>Name</TD>
    <TD> <input type="text" name="User_Name" 
       value="$User_Name"></TD>
    </TR>
    
     <TR>
    <TD>Password</TD>
    <TD colspan="2"><input type="password"
        name="User_Password" value="$User_Password" 
      size="20" maxlength="15" /></TD>
    
     </TR>
     <TR>
    <TD>Role</TD>
    <TD>"HERE I NEED A COMBOBOX"</TD>
     </TR>
    
    <TR>
    <TD>Permission</TD>
     <TD><input type="radio" name="User_Permission" 
      value="Add"$User_Permission_Add_sel>Add<input 
      type="radio" name="User_Permission"
      value="Edit"$User_Permission_Edit_sel>Edit<input 
       type="radio" 
      name="User_Permission"
      value="Delete"$User_Permission_Delete_sel>Delete<input
      type="radio" name="User_Permission" 
      value="View"$User_Permission_View_sel>View</TD>
     </TR>
    
    <TR>
    <TD>Department</TD>
    <TD colspan="2"> <select name="User_Department" 
     MULTIPLE
     SIZE=4>$User_Department_html</select></TD>
    
    </TR>
    </TR>
    <TR>
    <TD align="center" colspan="2">
    <input type="submit" name="submit" value="ADD">
    </TD>
    </TR>
    </TABLE
     </form>
    
      </body></html>
      END_HTML
    
    }
    Please do help me out as soon as possible..i am struck in my
    project.....Thank You
    Last edited by FishMonger; 09-13-2010 at 04:48 PM. Reason: Added code tags


 

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •