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. Quote Link to comment 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. Quote Link to comment 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>'; } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.