Go Back   CodingForums.com > :: Server side development > Perl/ CGI

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 09-13-2010, 09:57 AM   PM User | #1
jene
New to the CF scene

 
Join Date: Sep 2010
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
jene is an unknown quantity at this point
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 03:48 PM.. Reason: Added code tags
jene is offline   Reply With Quote
Reply

Bookmarks

Tags
cgi, html, perl

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 10:05 AM.


Advertisement
Log in to turn off these ads.