fj1200 Posted July 6, 2009 Share Posted July 6, 2009 Hi - I am building a form to update records in a database but struggling a bit with one secondary but vitally important area. I wrote the data entry for using drop-down lists where the value is not the same as the list entry - for example, I have material widths where they are represented in the database as: 1/2 = 0, 3/4 = 1 and full width = 2. There's 10 of these. I have a machine number where A = 101, B=102, D=103, E=104 - this is how they are represented in the manufacturers DB and I'm following their naming for continuity and reporting. I want to update these on the fly, so if, for example machine D is entered in the database, how do I set the "selected = ..." value in the drop-down on the form to reflect the database entry? eg. <Select> <option Value = \"101\">A</option> <option Value = \"201\">B</option> <option selected = \"selected\" Value = \"301\">D</option> <--- like this... <option Value = \"401\">E</option> </select> I only need to update maybe a few items - maybe we change the scheduled time, or put a job on a different machine, or the order changes - that kind of thing. I don't want them to have to re-enter the whole job so there's a fair number of these to do on the update page. Been tearing my hair out and could do with some advice. Link to comment https://forums.phpfreaks.com/topic/164912-set-a-form-dropdown-list-selected-item-to-the-value-in-a-database/ Share on other sites More sharing options...
fj1200 Posted July 6, 2009 Author Share Posted July 6, 2009 OK - I've found a way to do it using arrays from another site (lost the link now) but it's a bit long-winded: $MACHINE= $pbupdate[4]; $MODE = $pbupdate[5]; $_machine = array( 101=> "A", 102=> "B", 103=> "D", 104=> "E", ); If ($MACHINE == "101") $PRESS = ("A"); If ($MACHINE == "201") $PRESS = ("B"); If ($MACHINE == "301") $PRESS = ("D"); If ($MACHINE == "401") $PRESS = ("E"); echo "<tr><td>Machine :</td><td>$PRESS</td><td>"; echo "<SELECT name=fldr>"; foreach ($_machine as $key => $value) { $SELECTED = ""; If ($value == $PRESS) $SELECTED = ("SELECTED"); echo '<OPTION '.$SELECTED.' value="'.$key.'">'.$value.'</option>'; } echo "</select></td></tr>"; It's a bit laborious for one field but it works, the only problem I have with it is I have 18 fields to update from drop-down boxes and 4 text fields. Going to be a long file. If anyone has a simpler or more elegant solution I'd be glad to hear it. Link to comment https://forums.phpfreaks.com/topic/164912-set-a-form-dropdown-list-selected-item-to-the-value-in-a-database/#findComment-869741 Share on other sites More sharing options...
Allan- Posted July 6, 2009 Share Posted July 6, 2009 $types = array('A' => 101, 'B' => 102, 'D' => 103, 'E' => 104); foreach ($types as $type => $code) { echo '<option value="$code"'; if ($MACHINE == $code) { echo ' selected="selected"'; } echo '>'.$type.'</option>'; } Link to comment https://forums.phpfreaks.com/topic/164912-set-a-form-dropdown-list-selected-item-to-the-value-in-a-database/#findComment-869767 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.