473,396 Members | 1,827 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Retrieving the multiple values set by a form

Hi Everyone,

I am passing a form to a php script for further processing.
I am able to retrieve the last value set for that given form variable
using
$variable=$_REQUEST['form_variable'];
My question is, what is the Php way of retrieving all the values passed
for the same form variable?

For example, if the php script is called with a syntax like

http://xxxx/get_variables.php?form_v...iable=variable
, how do I iterate through all the values that form_variable has been
set to?

Thanks and regards,
Girish

Sep 27 '06 #1
10 3647
Girish wrote:
>
http://xxxx/get_variables.php?form_v...iable=variable
Above request will be read by php like this:
$_REQUEST["form_variable"] = "value1";
$_REQUEST["form_variable"] = "value2";
$_REQUEST["form_variable"] = "value3";

so only the last value will be the result. Because the first will be
replaced with second value and second value will be replace with the
last value. I think its better you use different variable name.

http://xxxx/get_variables.php?form_v...able3=variable
You can get all the values of above variables.

---
http://www.theukmap.com
http://www.theaussiemap.com

Sep 27 '06 #2

"Girish" <gi************@gmail.comwrote in message
news:11**********************@h48g2000cwc.googlegr oups.com...
Hi Everyone,

I am passing a form to a php script for further processing.
I am able to retrieve the last value set for that given form variable
using
$variable=$_REQUEST['form_variable'];
My question is, what is the Php way of retrieving all the values passed
for the same form variable?

For example, if the php script is called with a syntax like

http://xxxx/get_variables.php?form_v...le=value2&form
_variable=variable
>

, how do I iterate through all the values that form_variable has been
set to?

Thanks and regards,
Girish
if register_globals is ON then the variables are already set by php (which,
BTW, can cause all kinds of unexpected grief when html tag names end up as
php vars).

You can test the results by doing this:
<?php
if (!empty($_GET)) { # can't use !empty($_REQUEST) as it always has
something
echo "before foreach a=".$a.",b=".$b.",c=".$c."<br />"; // if
register_globals is on these are already set

# if register_globals is OFF this will set all request vars
foreach ($_REQUEST as $key =$value){
$$key = $value;
}
echo "after foreach a=".$a.",b=".$b.",c=".$c."<br />";
}
else {

echo <<<FORM
<form method="get" action="{$_SERVER['PHP_SELF']}">
<input type="text" name="a" />
<input type="text" name="b" />
<input type="text" name="c" />
<input type="submit" />
</form>
FORM;
}
?>
but be aware that $_REQUEST has extra stuff in it.
Sep 27 '06 #3
"Girish" <gi************@gmail.comwrote in message
news:11**********************@h48g2000cwc.googlegr oups.com...
Hi Everyone,

I am passing a form to a php script for further processing.
I am able to retrieve the last value set for that given form variable
using
$variable=$_REQUEST['form_variable'];
My question is, what is the Php way of retrieving all the values passed
for the same form variable?

For example, if the php script is called with a syntax like

http://xxxx/get_variables.php?form_v...iable=variable
, how do I iterate through all the values that form_variable has been
set to?

Thanks and regards,
Girish
Hi Girish,

In the example you have given, which equates to a Get, the variables will
indeed overwrite each other with only the last value surviving, as stated by
lorento.

You can however create an array by suffixing the variable name (in the HTML
form) this
<input name='inp[0]' type='hidden' value='first value'>
<input name='inp[1]' type='hidden' value='second value'>
<input name='inp[2]' type='hidden' value='third value'>

once this is received by your PHP script the values may be retrieved :

$myArray = $_REQUEST('ip'); // note no subscripts required

$myArray['0'] will contain 'first value', $myArray['1'] the second value,
and so on

BTW Register globals should be OFF on any production machine so there is
little point in having it on in a development machine.

HTH

Ron
Sep 27 '06 #4

"Ron Barnett" <ro*@RJBarnett.co.ukwrote in message
news:451a9129.0@entanet...
BTW Register globals should be OFF on any production machine so there is
little point in having it on in a development machine.

HTH

Ron

Agreed if you have control of the server, however many shared host LAMP
servers are stuck back at PHP4.x (most likely due to cpanel having not
caught up yet), and very often have register_globals on by default.
Of course if those hosts allow .htaccess files you can then turn it off.
Sep 27 '06 #5
Ron Barnett wrote:
In the example you have given, which equates to a Get, the variables will
indeed overwrite each other with only the last value surviving, as stated by
lorento.
Hi Ron and everyone else,

Thanks for your response. Let me expand a bit on my requirement. I have
a dynamically generated form where I am now trying something similiar.
To wit:

<input name='inp[0]' type='checkbox' value='first value'>
<input name='inp[1]' type='checkbox' value='second value'>
<input name='inp[2]' type='checkbox' value='third value'>
..
..
etc

Basically, I present a user with a dynamically generated checklist and
I am trying to see all the values that he has checked.
>
once this is received by your PHP script the values may be retrieved :

$myArray = $_REQUEST('ip'); // note no subscripts required

$myArray['0'] will contain 'first value', $myArray['1'] the second value,
and so on

Doing as you have suggested, count($myArray) gives the correct number
of values ticked.

But only $myArray['0'] is set!
$myArray['1'], $myArray['2'] , ..., etc are not set!

Not to flame or anything, I AM quite surprised by how arcane processing
a checklist in php is turning out to be. :-)
Thanks again!
Girish

Sep 28 '06 #6
And this is how I have worked around this problem. Admittedly this is
not a very elegant solution, but I present it for the benefit of those
who like me fail to find a better solution and will trawl the archives
in search of this very workaround in the future. :-)

In the main form I have,

<input name='"choice0'"type="checkbox" value='"first value">
<input name='"choice1" type="checkbox" value='"second value">
<input name='"choice2" type="checkbox" value='"third value">
etc.
plus a hidden input field
<input name="displayedchoices" type="hidden" value='"3"//equal to the
number displayed.

In the processing script

$choicesDisplayed = $_REQUEST['displayedchoices'];
for($i=0; $i< $choicesDisplayed; $i++)
{
$read = 'choice'.$i;
$setvalue = $_REQUEST[$read];
echo "Value of $read is ".$setvalue;
echo "<br>\n";
}
Cheers,
Girish

Sep 28 '06 #7
I have to wonder why you're using GET at all for form submission. If
you used post, you could just pass in an array:

<form method="POST" action="somesecript.php">
<input type="text" name="values[]"/>
<input type="text" name="values[]"/>
</form>

And in the processing:

foreach ($_POST["values"]):

// do something with each value

endforeach;

~A!
lorento wrote:
Girish wrote:

http://xxxx/get_variables.php?form_v...iable=variable

Above request will be read by php like this:
$_REQUEST["form_variable"] = "value1";
$_REQUEST["form_variable"] = "value2";
$_REQUEST["form_variable"] = "value3";

so only the last value will be the result. Because the first will be
replaced with second value and second value will be replace with the
last value. I think its better you use different variable name.

http://xxxx/get_variables.php?form_v...able3=variable
You can get all the values of above variables.

---
http://www.theukmap.com
http://www.theaussiemap.com
Sep 28 '06 #8
Ron Barnett wrote:
"Girish" <gi************@gmail.comwrote in message
news:11**********************@h48g2000cwc.googlegr oups.com...
>>Hi Everyone,

I am passing a form to a php script for further processing.
I am able to retrieve the last value set for that given form variable
using
$variable=$_REQUEST['form_variable'];
My question is, what is the Php way of retrieving all the values passed
for the same form variable?

For example, if the php script is called with a syntax like

http://xxxx/get_variables.php?form_v...iable=variable
, how do I iterate through all the values that form_variable has been
set to?

Thanks and regards,
Girish


Hi Girish,

In the example you have given, which equates to a Get, the variables will
indeed overwrite each other with only the last value surviving, as stated by
lorento.

You can however create an array by suffixing the variable name (in the HTML
form) this
<input name='inp[0]' type='hidden' value='first value'>
<input name='inp[1]' type='hidden' value='second value'>
<input name='inp[2]' type='hidden' value='third value'>

once this is received by your PHP script the values may be retrieved :

$myArray = $_REQUEST('ip'); // note no subscripts required

$myArray['0'] will contain 'first value', $myArray['1'] the second value,
and so on

BTW Register globals should be OFF on any production machine so there is
little point in having it on in a development machine.

HTH

Ron

Actually, it's even easier than that. No need to specify the index when
you're using the default.

<input name='inp[]' type='hidden' value='first value'>
<input name='inp[]' type='hidden' value='second value'>
<input name='inp[]' type='hidden' value='third value'>

inp[0] == 'first value'
inp[1] == 'second value'
inp[2] == 'third value'

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Sep 28 '06 #9
Girish wrote:
Ron Barnett wrote:
>>In the example you have given, which equates to a Get, the variables will
indeed overwrite each other with only the last value surviving, as stated by
lorento.


Hi Ron and everyone else,

Thanks for your response. Let me expand a bit on my requirement. I have
a dynamically generated form where I am now trying something similiar.
To wit:

<input name='inp[0]' type='checkbox' value='first value'>
<input name='inp[1]' type='checkbox' value='second value'>
<input name='inp[2]' type='checkbox' value='third value'>
.
.
etc

Basically, I present a user with a dynamically generated checklist and
I am trying to see all the values that he has checked.

>>once this is received by your PHP script the values may be retrieved :

$myArray = $_REQUEST('ip'); // note no subscripts required

$myArray['0'] will contain 'first value', $myArray['1'] the second value,
and so on

Doing as you have suggested, count($myArray) gives the correct number
of values ticked.

But only $myArray['0'] is set!
$myArray['1'], $myArray['2'] , ..., etc are not set!

Not to flame or anything, I AM quite surprised by how arcane processing
a checklist in php is turning out to be. :-)
Thanks again!
Girish
Girish,

First of all, it should be $myArray[0], not $myArray['0']. It has a
numeric index. And the fact count($myArray) has the correct value
indicates the values are correct.

Also, the way you have it coded, if the 'second value' checkbox is not
checked, myValue[1] will not be set and you'll get a notice if you try
to use it. Unless you absolutely have to have the indexes like that, a
better way is to use:

<input name='inp[]' type='checkbox' value='first value'>
<input name='inp[]' type='checkbox' value='second value'>
<input name='inp[]' type='checkbox' value='third value'>

Now inp[0] will contain the value from the first checked box, imp[1]
will contain the value from the second checked box, etc.

Also, I agree with Anthony but for different reasons. I suggest you use
POST instead of GET. Not because of the array (it should work in
either), but because it can get to be quite a long URL if the user
checks several boxes.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Sep 28 '06 #10

Jerry Stuckle wrote:
>
Girish,

First of all, it should be $myArray[0], not $myArray['0']. It has a
numeric index. And the fact count($myArray) has the correct value
indicates the values are correct.
Hi Jerry, I had tried both $myArray[0], not $myArray['0'], behaviour
was the same in both cases.
"
Also, the way you have it coded, if the 'second value' checkbox is not
checked, myValue[1] will not be set and you'll get a notice if you try
to use it. Unless you absolutely have to have the indexes like that, a
better way is to use:

<input name='inp[]' type='checkbox' value='first value'>
<input name='inp[]' type='checkbox' value='second value'>
<input name='inp[]' type='checkbox' value='third value'>

Now inp[0] will contain the value from the first checked box, imp[1]
will contain the value from the second checked box, etc.
Ah. gracias. This probably would have worked. The reason I was using
POST was just that GET is easier to debug AND to save as a link to the
report page.

thanks everyone!
Girish

Sep 29 '06 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: jason | last post by:
How does one loop through the contents of a form complicated by dynamic construction of checkboxes which are assigned a 'model' and 'listingID' to the NAME field on the fly in this syntax:...
7
by: Drew | last post by:
I have a db table like the following, UID, int auto-increment RegNo Person Relation YearsKnown Now here is some sample data from this table,
2
by: mschelstrate | last post by:
I am attempting to allow a user to update multiple rows and columns in a datagrid, when the user clicks a "Save" button, the postback occurs, at which time I need to retrieve all valuse form the...
12
by: shank | last post by:
I'm trying to use online samples for submitting multiple records from ASP into a stored procedure. Failing! Through the below form, a user could be submitting many records at a time. I'm not...
0
by: Andy | last post by:
Hi All. I'm working for a company that has set out a guideline for retrieving data from a database. Nobody can explain to me the reason for the following. When retrieving a set of records...
1
by: Captain Dondo | last post by:
I am not really experienced in Javascript so bear with me.... I am working with an embedded platform; no mouse, no keyboard. Just up, down, left, right keys and +/- keys for...
6
by: yasodhai | last post by:
Hi, I used a dropdown control which is binded to a datagrid control. I passed the values to the dropdownlist from the database using a function as follows in the aspx itself. <asp:DropDownList...
0
bmallett
by: bmallett | last post by:
First off, i would like to thank everyone for any and all help with this. That being said, I am having a problem retrieving/posting my dynamic form data. I have a form that has multiple options...
2
by: phpnewbie26 | last post by:
I currently have two drop down menus where the second one is populated from the first one. My second drop down menu should be able to do multiple selection. I have searched online and found out how...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.