Re: Grabbing checkbox values
- From: Amer Neely <perl4hire@xxxxxxxxxxxxxx>
- Date: Sun, 12 Nov 2006 21:18:10 -0500
Jerry Stuckle wrote:
Amer Neely wrote:Jerry Stuckle wrote:
Amer Neely wrote:
flamer die.spam@xxxxxxxxxxx wrote:
Amer Neely wrote:
I've got a dynamically built form with checkboxes for each element ( a
list of file names in a directory). I need to grab only those checkboxes
that are checked, so I can then delete those files.
Does each checkbox name have to be unique? I was hoping to just group
them under one name, and select from that array.
PHP is not my native language - I'm coming at this from Perl, so bear
with me, things are a little different in that country.
I've tried:
foreach ($_REQUEST as $field => $value)
{
echo "$field = $value<br>";
}
but that just grabs the last entry in the group.
The line in question is:
<input type="checkbox" name="DeleteThis" value="<?php
echo("$allfiles[$i]")?>"> <?php echo("$allfiles[$i]")?><br>
in html, if your checkbox is called "blah123" then when its checked it
will have the variable name of blah123 with a value of blah123, if it
is unchecked then blah123==null. the easy way is:
if (!empty($_POST['blah123'])) { do stuff }
Flamer.
Hmmm. OK, so I will need to also walk through each of the new input names, and check them with the 'empty' function. I'll work on that. Thanks.
Amer,
No. It's much easier than that. Have all the checkboxes names the same, with square brackets ( "[]" ) following. The you will be able to use an array on the PHP side, i.e.
<input type="checkbox" name="DeleteThis[]" value="<?php
echo("$allfiles[$i]")?>"> <?php echo("$allfiles[$i]")?><br>>
To process the input, all you need is:
foreach ($_POST['DeleteThis'] as $delfile) {
// Validate the filename is OK here
unlink $delfile;
}
This will work whether the checkbox is set via a mouse click or javascript.
Of course, you will want to validate your filenames. That part I left out because I have no idea what the criteria is.
OK, I have your code inserted, but it gives me an error when I use my 'Select All' JS:
Warning: Invalid argument supplied for foreach() in show_spam4.php on line 116
If I click any box with the mouse it returns 'on' for the output.
[116] foreach ($_POST['DeleteThis'] as $value)
{
echo "$value<br>";
}
Amer,
I didn't mean for that to be the only code. Rather it was a guide to get you going in the right direction.
The invalid argument is probably because none of the checkboxes are checked, so you're not getting anything in your PHP code. To make sure you're getting good information, check out isset() and isarray() functions.
:) Sorry, I'm new with PHP so everything is literal. But as I mentioned, if I check all the boxes with JS, and submit the form, it throws that error. I'm going to do some reading and see what I can come up with. Thanks for the input and direction so far.
--
Amer Neely
w: www.softouch.on.ca/
b: www.softouch.on.ca/blog/
Perl | MySQL programming for all data entry forms.
"We make web sites work!"
.
- Follow-Ups:
- Re: Grabbing checkbox values
- From: Michael Fesser
- Re: Grabbing checkbox values
- From: Michael Fesser
- Re: Grabbing checkbox values
- From: Michael Fesser
- Re: Grabbing checkbox values
- From: Jerry Stuckle
- Re: Grabbing checkbox values
- References:
- Grabbing checkbox values
- From: Amer Neely
- Re: Grabbing checkbox values
- From: flamer die.spam@xxxxxxxxxxx
- Re: Grabbing checkbox values
- From: Amer Neely
- Re: Grabbing checkbox values
- From: Jerry Stuckle
- Re: Grabbing checkbox values
- From: Amer Neely
- Re: Grabbing checkbox values
- From: Jerry Stuckle
- Grabbing checkbox values
- Prev by Date: Re: php inside html
- Next by Date: Re: Grabbing checkbox values
- Previous by thread: Re: Grabbing checkbox values
- Next by thread: Re: Grabbing checkbox values
- Index(es):
Relevant Pages
|