|
Posted by Amer Neely on 11/12/06 23:44
Jerry Stuckle wrote:
> Amer Neely wrote:
>> flamer die.spam@hotmail.com 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 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!"
Navigation:
[Reply to this message]
|