Page 1 of 1

How to send a URL paramter in the form of an array ?

Posted: Fri Jan 02, 2004 11:12 am
by anjanesh
<FORM ACTION="Register.php">
<INPUT name=somename1>
<INPUT name=somename2>
<INPUT name=somename3>
<INPUT name=somename4>
<INPUT name=somename5>
<INPUT name=somename6>
<INPUT name=somename7>
<INPUT name=somename8>
<INPUT name=somename9>
<INPUT name=somename10>
<INPUT type="submit" value="Submit" name=Submit>
</FORM>


Is there anyway to send this as an array so that I can access it in the php code as

Register.php
for ($i=1;$i<=10;$i++)
{
print its name & value
}


somename1 value1
somename2 value2
somename3 value3
somename4 value4
somename5 value5
somename6 value6
somename7 value7
somename8 value8
somename9 value9
somename10 value10

Thanks

Posted: Fri Jan 02, 2004 11:15 am
by JAM

Code: Select all

<pre>
<?php
print_r($_POST);
?>
<form method="post">
<input type="text" name="somename[]">
<input type="text" name="somename[]">
<input type="text" name="somename[]">
<input type="text" name="somename[]">
<input type="text" name="somename[]">
<input type="text" name="somename[]">
<input type="text" name="somename[]">
<input type="text" name="somename[]">
<input type="text" name="somename[]">
<input type="submit" value="submit" name="submit">
</form>
I dont name them with numbers, as I know that index 0 in the array being sendt is the first somename[], 1 the second etc.
If nothing is entered in the fields, they end up as empty, but yet visible so the keys are intact when dealing with the array.

Hope I made sence ;)

[Edit: Corrected spelling. --JAM]

Posted: Fri Jan 02, 2004 11:28 am
by DuFF
Yes you can but you will need to change a couple of things. First of all change all of the inputs to:

Code: Select all

<?php
<FORM ACTION="Register.php" method="post">
<INPUT name="somename[]" type="text">
<INPUT name="somename[]" type="text">
<INPUT name="somename[]" type="text">
<INPUT name="somename[]" type="text">
<INPUT name="somename[]" type="text">
<INPUT name="somename[]" type="text">
<INPUT name="somename[]" type="text">
<INPUT name="somename[]" type="text">
<INPUT name="somename[]" type="text">
<INPUT name="somename[]" type="text">
<INPUT type="submit" value="Submit" name="Submit">
</FORM>
?>
This will create an array of $_POST['somename'] on the next page. You can then loop through the array using foreach, like this:

Code: Select all

<?php
        $i = 0;
        foreach($_POST['somename'] as $value)
        {
                echo "somename[$i] - $value<br>\n";
                $i++;
        }
?>
Edit:
Damn, Jam beat me to it :wink:

Edit:
Yah well, you did continue on it, that i forgot. ;)
Oh, and added " around values as in my post. -- JAM