AdrianJ217 has asked for the wisdom of the Perl Monks concerning the following question:
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.
HTMLCGI<!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>
#!/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>"; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: html checkbox and perl cgi
by tangent (Parson) on Jan 18, 2014 at 18:50 UTC | |
by AdrianJ217 (Novice) on Jan 18, 2014 at 19:03 UTC | |
by AdrianJ217 (Novice) on Jan 18, 2014 at 19:45 UTC | |
by tangent (Parson) on Jan 18, 2014 at 20:30 UTC | |
by AdrianJ217 (Novice) on Jan 18, 2014 at 20:56 UTC | |
by tangent (Parson) on Jan 18, 2014 at 21:27 UTC | |
| |
Re: html checkbox and perl cgi
by ruzam (Curate) on Jan 19, 2014 at 00:33 UTC |