You are here: Re: Grabbing checkbox values « PHP Programming Language « IT news, forums, messages
Re: Grabbing checkbox values

Posted by Amer Neely on 11/13/06 02:18

Jerry Stuckle wrote:
> Amer Neely wrote:
>> 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]")?>">&nbsp;<?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]")?>">&nbsp;<?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!"

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация