By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,036 Members | 1,126 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,036 IT Pros & Developers. It's quick & easy.

Printing array items sent in a form

P: n/a
I'm trying an example from the book "Learning PHP5" but it doesn't
work as Expected. Snippet:

<form method="POST" action="index.php">
<select name="lunch[ ]" multiple>
<option value="pork">BBQ Pork Bun</option>
<option value="chicken">Chicken Bun</option>
<option value="lotus">Lotus Seed Bun</option>
<option value="bean">Bean Paste Bun</option>
<option value="nest">Bird-Nest Bun</option>
</select>
<input type="submit" name="submit">
</form>

Selected buns:
<br/>
<?php
foreach ($_POST['lunch'] as $choice) {
print "You want a $choice bun. <br/>";
}
?>
When I select several itens with the Ctrl key, it still prints the
last item only, ie: "You want a nest bun."

I double-checked, and I selected several items. Any idea?
Thanks,

Feb 2 '07 #1
Share this Question
Share on Google+
4 Replies


P: n/a
ED

"Charles" <la********@gmail.comwrote in message
news:11**********************@p10g2000cwp.googlegr oups.com...
I'm trying an example from the book "Learning PHP5" but it doesn't
work as Expected. Snippet:

<form method="POST" action="index.php">
<select name="lunch[ ]" multiple>
<option value="pork">BBQ Pork Bun</option>
<option value="chicken">Chicken Bun</option>
<option value="lotus">Lotus Seed Bun</option>
<option value="bean">Bean Paste Bun</option>
<option value="nest">Bird-Nest Bun</option>
</select>
<input type="submit" name="submit">
</form>

Selected buns:
<br/>
<?php
foreach ($_POST['lunch'] as $choice) {
print "You want a $choice bun. <br/>";
}
?>
When I select several itens with the Ctrl key, it still prints the
last item only, ie: "You want a nest bun."

I double-checked, and I selected several items. Any idea?
Thanks,
hi Charles,
looks like you have space characters in the select name (between the square
brackets),
try: <select name="lunch[]" multiple>
and not: <select name="lunch[ ]" multiple>

cheers,
ED
Feb 2 '07 #2

P: n/a
Ok, I found out, there's gotta be only one space between the brackets
instead of two:

<select name="lunch[ ]" multiple>

Small detail. Big difference.

Feb 2 '07 #3

P: n/a
..oO(Charles)
>Ok, I found out, there's gotta be only one space between the brackets
instead of two:

<select name="lunch[ ]" multiple>
There's gotta be _no_ space!

<select name="lunch[]" multiple="multiple">

Micha
Feb 2 '07 #4

P: n/a
ED

"Michael Fesser" <ne*****@gmx.dewrote in message
news:q9********************************@4ax.com...
.oO(Charles)
>>Ok, I found out, there's gotta be only one space between the brackets
instead of two:

<select name="lunch[ ]" multiple>

There's gotta be _no_ space!

<select name="lunch[]" multiple="multiple">

Micha

Interestingly, it appears that this array syntax actually does work with a
single space (or a single tab character for that matter):

$foo = array();
$foo[] = 'empty';
$foo[ ] = 'space';
$foo[ ] = 'tab';
print_r($foo);

results in:
Array
(
[0] =empty
[1] =spacechar
[2] =tab
)strange huh?cheers, ED
Feb 2 '07 #5

This discussion thread is closed

Replies have been disabled for this discussion.