woolyg Posted July 20, 2007 Share Posted July 20, 2007 Hi all, I'm trying to gather data from a dropdown menu to be processed and added into a table Here's the dropdown menu code that displays a list of selectable items: <select name="prop_area" size="1" class="boxes"> <?PHP $places = mysql_query ("SELECT * FROM places order by name"); $ordered = array(); while ($placelist = mysql_fetch_row($places)) { $id = $placelist[0]; $name = $placelist[1]; $ordered[$id] = $name; } natsort($ordered); while (list($id,$use) = each($ordered)) { $placeid = current($ordered); $option = "<option value=\"$id\""; if ($id == $area) { $option .= " selected"; } $option .= ">"; $option .= "$use</option>"; print $option; } ?> </select> Then I use $prop_area = $_POST['prop_area']; Then I try to write the data to a table using: $query = "INSERT INTO table (area) ". "VALUES ('$prop_area')"; Because there are a few possible entries from the dropdown selection, should I be using some sort of FOREACH statement? If so, how can I implement it? Still nOObing it up here:) Cheers, Woolyg Link to comment https://forums.phpfreaks.com/topic/60917-_post-issues/ Share on other sites More sharing options...
Daniel0 Posted July 20, 2007 Share Posted July 20, 2007 <select name="prop_area" size="1" class="boxes"> <?php $places = mysql_query("SELECT * FROM places ORDER BY name"); while($place = mysql_fetch_assoc($places)) { $selected = $place['id']==$area ? " selected='selected'" : null; echo "<option value='{$place['id']}'{$selected}>{$place['name']}</option>\n"; } ?> </select> Is better... I supposed that the fields were named id and name. I believe that if multiple selections are made, then it will be an array. Try to use print_r() and then die(). Then you can see what it does. Try with both a single value and multiple values selected, then you'll see. Link to comment https://forums.phpfreaks.com/topic/60917-_post-issues/#findComment-303169 Share on other sites More sharing options...
woolyg Posted July 20, 2007 Author Share Posted July 20, 2007 Hi Daniel0 Thanks for that - though the information displays fine in the dropdown the query created, what I'm really trying to do is process the information that a user selects from it. In other words: Say I had a dropdown menu with info about "Number of Rooms" Selectable options: 1 2 3 4 5 ...and a user selects '4' How would I tell the PHP file to use this selection and post it to a MySQL table? When I use $_POST, the info simply does not enter onto the table! Hope this is understandable - Woolyg. Link to comment https://forums.phpfreaks.com/topic/60917-_post-issues/#findComment-303170 Share on other sites More sharing options...
rameshfaj Posted July 20, 2007 Share Posted July 20, 2007 You can also try this stuff: <select name="prop_area" size="1" class="boxes"> <?php $places = mysql_query("SELECT * FROM places ORDER BY name"); while($place = mysql_fetch_assoc($places)) {?> $selected = $place['id']==$area ? " selected='selected'" : null; <option value=<?php $place['id']?>><?php $place['id']?></option> <?php } ?> </select> Link to comment https://forums.phpfreaks.com/topic/60917-_post-issues/#findComment-303174 Share on other sites More sharing options...
rameshfaj Posted July 20, 2007 Share Posted July 20, 2007 On the next page do this: $something=$_POST['name_of_selection_list']; What ever the value is assigned to the element of the list ;will be posted to this value. Note that the action of the firstpage should be set to the next page to recieve the values by POST and GET commands. I think this helps! Link to comment https://forums.phpfreaks.com/topic/60917-_post-issues/#findComment-303176 Share on other sites More sharing options...
Daniel0 Posted July 20, 2007 Share Posted July 20, 2007 I believe that if multiple selections are made, then it will be an array. Try to use print_r() and then die(). Then you can see what it does. Try with both a single value and multiple values selected, then you'll see. Nevermind this. I confused it with a select with multiple='multiple'... Besides, I found out that it doesn't return arrays anyways (unless you name it something like test[])... Thanks for that - though the information displays fine in the dropdown the query created [...] I know... I just gave you a shorter (and probably more efficient since your contains multiple loops) way of doing it. [...] what I'm really trying to do is process the information that a user selects from it. In other words: Say I had a dropdown menu with info about "Number of Rooms" Selectable options: 1 2 3 4 5 ...and a user selects '4' How would I tell the PHP file to use this selection and post it to a MySQL table? When I use $_POST, the info simply does not enter onto the table! You can access it using $_POST... You can see in this little test script how the data will be like in $_POST: <form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post'> <select size='4' name='test'> <option value='1'>one</option> <option value='2'>two</option> <option value='3'>three</option> <option value='4'>four</option> </select><br /> <button type='submit'>Submit</button> </form> <?php print_r($_POST); ?> Link to comment https://forums.phpfreaks.com/topic/60917-_post-issues/#findComment-303178 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.