Hi everyone. So I'm writing an html form for the first time, results of which will be submitted to a mySQL database using a CGI script. The html file incorporates a checkbox but I can't get the results of the checkbox to pass correctly through the CGI. Below is the code for the html and for the CGI. Thank you.
HTML
<!DOCTYPE html>
<html>
<body>
<form action = "http://bioinfo.lnx.biu.ac.il/aj-cgi/trypsnodb2.cgi" me
+thod="POST">
<select name="family">
<option>C/D</option>
<option>H/ACA</option>
<option>ALL</option>
</select><br>
<input type="checkbox" name="TB" value="on">Trypanosoma brucei<br>
<input type="checkbox" name="LM" value="on">Leishmania major<br>
<input type="checkbox" name="HS" value="on">Homo sapiens<br>
<input type="checkbox" name="SC" value="on">Saccharomyces cerevisi
+ae<br>
<input type="checkbox" name="AT" value="on">Arabidopsis thaliana<b
+r>
<input type="submit" name="submit1">
<input type="reset" name="reset1"><br><br>
<input type="text" name="enter_sno" placeholder="snoRNA">
<input type="submit" name="submit2">
</form>
</body>
</html>
CGI
#!/usr/bin/perl -w
use strict;
use DBI;
use CGI;
my $query = new CGI;
print $query->header();
my $my_database = "TrypSnoDB";
my $localhost = "localhost";
my $dsn = "DBI:mysql:$my_database:$localhost";
my $db_user_name = "adrian";
my $db_password = "temp_pass";
my $dbh = DBI->connect("DBI:mysql:database=TrypSnoDB;host=localhost;my
+sql_socket=/private/software/mysql/mysql.sock","adrian","temp_pass",
+{'RaiseError' => 1});
if ($query->param('submit1')){
my $family = $query->param('family');
my $TB = $query->param('TB');
my $LM = $query->param('LM');
my $HS = $query->param('HS');
my $SC = $query->param('SC');
my $AT = $query->param('AT');
my $db_query;
if ($family eq "ALL") {
$family = "'C/D' or ST.family='H/ACA'"
}
else {
$family = "'$family'";
}
$db_query = "SELECT ST.sno_name,HT.homolog_name FROM sno_Table ST,
+Homolog_Table HT,sno_Homologs SH,Organism O
WHERE ST.sno_id=SH.sno_id AND SH.homolog_id=HT.homolog_id AND HT.org_i
+d=O.org_id and (ST.family=$family) and
O.organism='$TB'";
my $sth = $dbh->prepare($db_query);
$sth->execute();
my$total = $sth->rows;
print "<table border=1>\n
<tr>
<th>snoRNA</th>\n
<th>Homolog</th>\n
</tr>\n";
while (my@row = $sth->fetchrow_array()){
my$sno_name = $row[0];
my$homolog_name = $row[1];
print "<tr>\n<td>$sno_name</d><td>$homolog_name</td></tr>\n";
}
print "<tr>
<th>TOTAL</th>\n
<th>$total</th>\n
</tr>\n";
print "</table>";
}
elsif ($query->param('submit2')){
my $ud_sno = $query->param('enter_sno');
my$db_query;
$db_query = "SELECT ST.sno_name,HT.homolog_name FROM sno_Table ST,
+Homolog_Table HT,sno_Homologs SH
WHERE ST.sno_id=SH.sno_id AND SH.homolog_id=HT.homolog_id AND ST.sno_n
+ame='$ud_sno'";
my $sth = $dbh->prepare($db_query);
$sth->execute();
print "<table border=1>\n
<tr>
<th>snoRNA</th>\n
<th>Homolog</th>\n
</tr>\n";
while (my@row = $sth->fetchrow_array()){
my$ud_sno_name = $row[0];
my$hom_name = $row[1];
print "<tr>\n<td>$ud_sno_name</d><td>$hom_name</td></tr>\n";
}
print "</table>";
}