Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Hello, thank you very much for your great comments and valued suggestions. I am deeply sorry for not being clear enough on my first attempt. My problem was only to learn why the values I select from my form array are not making it into the text file as they should? The last choice I select is the only value being added to the list at this time. (In the past, I had real name values written in my html form. Passing/controlling these type of values has been so simple.) The below example uses an array made directly from opening a given dir. This confuses me deeply and I have tried so very hard to find the error for weeks... I have again polished things up a bit and followed your advice. Sincerely, I don't yet fully understand how to write all the different methods using perl, (I do promise to study them for the benifit they will bring me)if I may request the example or correction to follow my current coding style. Hope I'm not being to forward, Thank you again in advance for your time and insight. Jim
#!/usr/bin/perl -w use CGI::Carp qw(fatalsToBrowser); ############################################# $path_to_files = "/home/foo/www/dir"; $script = "$ENV{'QUERY_STRING'}"; ############################################# read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/\n/ /g;# added to strip line breaks $FORM{$name} = $value; } ############################################# print "Content-type: text/html\n\n"; $query = "$ENV{'QUERY_STRING'}"; if ($query eq "test") {&Display_Form} elsif ($FORM{'create_list'} eq "Create") {&Create_List} else {&Display_Form} #### BEGIN DISPLAY FORM #### sub Top { opendir DIR, "$path_to_files" or die "Can't open directory:$!\n"; @thefiles = sort(grep(/html$/, readdir(DIR))); closedir(DIR); $count = @thefiles; print "<html>"; print "<head><title>MY SIMPLE FILE SELECTOR</title></head>"; print "<body bgcolor =\"#FFFFFF\" text =\"#000000\" link = \"#808080\" + vlink = \"#808080\" alink = \"#808080\">"; print "<center><h2>MY SIMPLE FILE SELECTOR</h2>"; print "<br><br><small><b>The following [$count] files were found in th +e [$path_to_files] Dir.</b></small><br><br>"; print "</center>"; } sub Display_Form { &Top; print "<center><table width=\"246\">"; print "<tr>"; print "<td align=\"left\" width=\"312\">"; print "<form action=\"$script\" method=\"POST\">"; print "<li type=\"square\"><font size=\"2\"><i>Select from list</i></f +ont><BR>"; foreach (@thefiles) { $choice = $_; print "<input type=\"checkbox\" name=\"choice\" value=\"$choice\"><b>$ +choice</b><br>"; } print "<p><input type=\"submit\" name=\"create_list\" value=\"Create\" +></p>"; print "</form>"; print "</td></tr></table>"; &Bottom; } sub Bottom { print "<center><br>"; print "<small><small>$footer</small></small>"; print "</center></html>"; } #### END DISPLAY FORM #### #### BEGIN CREATION PROCESS #### sub Create_List { $choice = "$FORM{'choice'}"; @choices = split(/,/, $choice); $selected = @choices; open FILE,">list.txt" or die "Can't open file:$!\n"; foreach (@choices) { print FILE "$choice\n"; } close FILE; &Finished; } sub Finished { &Top; print "<center><h4>List created</h4>"; print "You selected ($selected):<br><li>$choice</li><br>"; print "<br><A HREF=\"javascript:history.back()\">Go Back...</A></cente +r>"; &Bottom; } #### END PROCESS ####

In reply to Re: Re: a question about working with the forms and array by Anonymous Monk
in thread a question about working with the forms and array by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2024-03-28 10:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found