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:
Expand|Select|Wrap|Line Numbers
- #!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
- }