RE: [PHP] Need some advice concerning forms (multi select pulldown) and arrays
Shouldn't it be count($_REQUEST['animals']) and count($_REQUEST['animals'][2]), etc... ?? ---John Holmes... -Original Message- From: Victor Spång Arthursson [mailto:[EMAIL PROTECTED]] Sent: Sunday, May 26, 2002 1:29 PM To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: Re: [PHP] Need some advice concerning forms (multi select pulldown) and arrays Ok, I can't get this right... Have the following code: ? $choices = array(1 = 'dog', 2 = 'cat', 3 = 'mouse', 4 = 'frog'); if (is_array($_REQUEST['animals'])) { // get the number of selectcases echo get the number of selectcases: . count($animals) . br; // get the number of provided selects from select with name 2 echo get the number of provided selects from select with name \2\: . count($animals[2]) . br; // test to print some data echo $animals[2][0]. br; echo $animals[2][1]. br; echo $animals[2][2]. br; echo $animals[2][3]. br; } ? form method=post action=?= $_SERVER['PHP_SELF'] ? select multiple name=animals[2] option value='1'dog/option option value='2'cat/option option value='3'mouse/option option value='4'frog/option /select select multiple name=animals[4] option value='1'dog/option option value='2'cat/option option value='3'mouse/option option value='4'frog/option /select input type=submit/form Why does it not work? // get the number of selectcases echo get the number of selectcases: . count($animals) . br; This works great // get the number of provided selects from select with name 2 echo get the number of provided selects from select with name \2\: . count($animals[2]) . br; But this doesn't... Thankful for any help, /Victor On Sunday, May 26, 2002, at 05:35 PM, John Holmes wrote: You can supply an whateverID for the select if you want to. select name=select[] option ... /select select name=select[] option ... /select etc... That will give you an array $select[] on the processing page. If the selects are multi-selects, you'll have a multidimensional array. The first chosen element in the first select box can be referenced like this $select[0][0] You can get a count of how many select boxes there are by doing count($select); You can get a count of how many elements were selected within a select you can do this: count($select[x]); Where x is the number of the select box you want to know about. Confusing, eh? ---John Holmes... -Original Message- From: Victor Spång Arthursson [mailto:[EMAIL PROTECTED]] Sent: Sunday, May 26, 2002 7:44 AM To: [EMAIL PROTECTED] Subject: Re: [PHP] Need some advice concerning forms (multi select pulldown) and arrays On Sunday, May 26, 2002, at 01:14 PM, John Holmes wrote: Just give each select its own name. Can't do that, don't know from time to time how many there'll be And I've to have some case which iterates on the following page... Or name them all the same followed by an [] and you'll end up with a multi-dimensional array if things go right... Sounds better - but I've a lot of items and I'ld like to know which of the arrays that go to which item... Can I just write name=array[whateverid] and then in some way reveal the whateverid's? Sincerely Victor -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Need some advice concerning forms (multi select pulldown) and arrays
Hello and thanks for your fast answer! I'ld like to know if there is any possibility to distinguish the selects if I've multiple multiple selects, that is, more than one on the same page? What I'm loooking for is the possibility to have an unknown number of multiple selects on the same page Is it possible? Anyone who can describe how to do this or provide a link to some tutorial? And also, where in the manual can I read about this? Sincerely, Victor On lördag, maj 25, 2002, at 08:59 , Miguel Cruz wrote: Have a play with this little program - it should demonstrate all of the things you'd want to do with getting data in and out of mult selects. If it doesn't work, you may have an older version of PHP - in that case, change $_REQUEST to $HTTP_POST_VARS and $_SERVER['PHP_SELF'] to $PHP_SELF. --- ? $choices = array(1 = 'dog', 2 = 'cat', 3 = 'mouse', 4 = 'frog'); if (is_array($_REQUEST['animals'])) { print 'pYou chose:/pul'; foreach ($_REQUEST['animals'] as $animal_id) print li{$choices[$animal_id]}/li; print '/ulhr'; } ?form method=post action=?= $_SERVER['PHP_SELF'] ? select multiple name=animals[]? foreach ($choices as $id = $name) print 'option ' . (in_array($id, $_REQUEST['animals']) ? 'selected ' : '') . value='$id'$name/option; ?/selectinput type=submit/form -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] Need some advice concerning forms (multi select pulldown) and arrays
Just give each select its own name. Or name them all the same followed by an [] and you'll end up with a multi-dimensional array if things go right... select name='one' ... select name='two' ---John Holmes... -Original Message- From: Victor Spång Arthursson [mailto:[EMAIL PROTECTED]] Sent: Sunday, May 26, 2002 5:49 AM To: [EMAIL PROTECTED] Subject: Re: [PHP] Need some advice concerning forms (multi select pulldown) and arrays Hello and thanks for your fast answer! I'ld like to know if there is any possibility to distinguish the selects if I've multiple multiple selects, that is, more than one on the same page? What I'm loooking for is the possibility to have an unknown number of multiple selects on the same page Is it possible? Anyone who can describe how to do this or provide a link to some tutorial? And also, where in the manual can I read about this? Sincerely, Victor On lördag, maj 25, 2002, at 08:59 , Miguel Cruz wrote: Have a play with this little program - it should demonstrate all of the things you'd want to do with getting data in and out of mult selects. If it doesn't work, you may have an older version of PHP - in that case, change $_REQUEST to $HTTP_POST_VARS and $_SERVER['PHP_SELF'] to $PHP_SELF. --- ? $choices = array(1 = 'dog', 2 = 'cat', 3 = 'mouse', 4 = 'frog'); if (is_array($_REQUEST['animals'])) { print 'pYou chose:/pul'; foreach ($_REQUEST['animals'] as $animal_id) print li{$choices[$animal_id]}/li; print '/ulhr'; } ?form method=post action=?= $_SERVER['PHP_SELF'] ? select multiple name=animals[]? foreach ($choices as $id = $name) print 'option ' . (in_array($id, $_REQUEST['animals']) ? 'selected ' : '') . value='$id'$name/option; ?/selectinput type=submit/form -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Need some advice concerning forms (multi select pulldown) and arrays
On Sunday, May 26, 2002, at 01:14 PM, John Holmes wrote: Just give each select its own name. Can't do that, don't know from time to time how many there'll be And I've to have some case which iterates on the following page... Or name them all the same followed by an [] and you'll end up with a multi-dimensional array if things go right... Sounds better - but I've a lot of items and I'ld like to know which of the arrays that go to which item... Can I just write name=array[whateverid] and then in some way reveal the whateverid's? Sincerely Victor -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Need some advice concerning forms (multi select pulldown) and arrays
Ok, I can't get this right... Have the following code: ? $choices = array(1 = 'dog', 2 = 'cat', 3 = 'mouse', 4 = 'frog'); if (is_array($_REQUEST['animals'])) { // get the number of selectcases echo get the number of selectcases: . count($animals) . br; // get the number of provided selects from select with name 2 echo get the number of provided selects from select with name \2\: . count($animals[2]) . br; // test to print some data echo $animals[2][0]. br; echo $animals[2][1]. br; echo $animals[2][2]. br; echo $animals[2][3]. br; } ? form method=post action=?= $_SERVER['PHP_SELF'] ? select multiple name=animals[2] option value='1'dog/option option value='2'cat/option option value='3'mouse/option option value='4'frog/option /select select multiple name=animals[4] option value='1'dog/option option value='2'cat/option option value='3'mouse/option option value='4'frog/option /select input type=submit/form Why does it not work? // get the number of selectcases echo get the number of selectcases: . count($animals) . br; This works great // get the number of provided selects from select with name 2 echo get the number of provided selects from select with name \2\: . count($animals[2]) . br; But this doesn't... Thankful for any help, /Victor On Sunday, May 26, 2002, at 05:35 PM, John Holmes wrote: You can supply an whateverID for the select if you want to. select name=select[] option ... /select select name=select[] option ... /select etc... That will give you an array $select[] on the processing page. If the selects are multi-selects, you'll have a multidimensional array. The first chosen element in the first select box can be referenced like this $select[0][0] You can get a count of how many select boxes there are by doing count($select); You can get a count of how many elements were selected within a select you can do this: count($select[x]); Where x is the number of the select box you want to know about. Confusing, eh? ---John Holmes... -Original Message- From: Victor Spång Arthursson [mailto:[EMAIL PROTECTED]] Sent: Sunday, May 26, 2002 7:44 AM To: [EMAIL PROTECTED] Subject: Re: [PHP] Need some advice concerning forms (multi select pulldown) and arrays On Sunday, May 26, 2002, at 01:14 PM, John Holmes wrote: Just give each select its own name. Can't do that, don't know from time to time how many there'll be And I've to have some case which iterates on the following page... Or name them all the same followed by an [] and you'll end up with a multi-dimensional array if things go right... Sounds better - but I've a lot of items and I'ld like to know which of the arrays that go to which item... Can I just write name=array[whateverid] and then in some way reveal the whateverid's? Sincerely Victor -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Need some advice concerning forms (multi select pulldown)and arrays
On Sun, 26 May 2002, Victor Spång Arthursson wrote: select multiple name=animals[2] change this to: select multiple name=animals[2][] select multiple name=animals[4] and this to: select multiple name=animals[4][] because you want animals[2] and animals[4] to be arrays, not scalar values. miguel -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Need some advice concerning forms (multi select pulldown)and arrays
On Sat, 25 May 2002, Victor Spång Arthursson wrote: I know it's possible to use arrays in combination with forms, but I need some advice about where to find some information/tutorial concerning how to use arrays together with multi-select-tags... Have a play with this little program - it should demonstrate all of the things you'd want to do with getting data in and out of mult selects. If it doesn't work, you may have an older version of PHP - in that case, change $_REQUEST to $HTTP_POST_VARS and $_SERVER['PHP_SELF'] to $PHP_SELF. --- ? $choices = array(1 = 'dog', 2 = 'cat', 3 = 'mouse', 4 = 'frog'); if (is_array($_REQUEST['animals'])) { print 'pYou chose:/pul'; foreach ($_REQUEST['animals'] as $animal_id) print li{$choices[$animal_id]}/li; print '/ulhr'; } ?form method=post action=?= $_SERVER['PHP_SELF'] ? select multiple name=animals[]? foreach ($choices as $id = $name) print 'option ' . (in_array($id, $_REQUEST['animals']) ? 'selected ' : '') . value='$id'$name/option; ?/selectinput type=submit/form --- miguel -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Need some advice concerning forms (multi select pulldown)and arrays
Oops. I actually tried running it (cleverly waiting until after I posted it to the list) and I see that there are some warnings in the event that nothing has been selected (due to in_array operating on an undefined variable). Don't worry about them. Or change that last foreach clause to look like this: foreach ($choices as $id = $name) print 'option ' . (is_array($_REQUEST['animals']) in_array($id, $_REQUEST['animals']) ? 'selected ' : '') . value='$id'$name/option; (I added an is_array to make sure we don't send a null value as the second argument to in_array). miguel On Sat, 25 May 2002, Miguel Cruz wrote: Have a play with this little program - it should demonstrate all of the things you'd want to do with getting data in and out of mult selects. If it doesn't work, you may have an older version of PHP - in that case, change $_REQUEST to $HTTP_POST_VARS and $_SERVER['PHP_SELF'] to $PHP_SELF. --- ? $choices = array(1 = 'dog', 2 = 'cat', 3 = 'mouse', 4 = 'frog'); if (is_array($_REQUEST['animals'])) { print 'pYou chose:/pul'; foreach ($_REQUEST['animals'] as $animal_id) print li{$choices[$animal_id]}/li; print '/ulhr'; } ?form method=post action=?= $_SERVER['PHP_SELF'] ? select multiple name=animals[]? foreach ($choices as $id = $name) print 'option ' . (in_array($id, $_REQUEST['animals']) ? 'selected ' : '') . value='$id'$name/option; ?/selectinput type=submit/form --- miguel -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php