chastro Posted July 27, 2007 Share Posted July 27, 2007 Hi there, a little stumped on a form I am making for work... on the first viewing of the page, $action is not set. (The form submits to itself) when this is shown in the page, a list of checkboxes along side the employees' name is shown like so... i.e. [] Bob [] Jim [] Mary [] Sara [] Tim ...then the user is to make his/her selections of these employees, and click submit, this time with the action $final_confirm. When the page now runs through, i need it to make the same list of employees, however if they had selected an employee before, it needs to be checked. i.e. [X] Bob [] Jim [X] Mary [X] Sara [] Tim My problem is that I've gotten it to populate the check boxes on submit, but if I select three names, it returns this: [X] Bob [] Bob [] Bob [] Jim [] Jim [] Jim [X] Mary [] Mary [] Mary [X] Sara [] Sara [] Sara [] Tim [] Tim [] Tim if I select two names, it does the same thing, just with two lines each... <?php //$sql = "SELECT bla bla bla..." //$result = mysql_query bla bla bla... while ($row = mysql_fetch_array($result)) { $id = $row['id']; $employee_name = $row['name']; if ($action == "final_confirm"){ if (isset($employee)){ foreach ($employee as $employee_selected) { if($employee_selected == $id){ echo "<INPUT TYPE=\"CHECKBOX\" NAME=\"employee[]\" VALUE=\"$id\" CHECKED>$employee_name<BR>\n"; } else { echo "<INPUT TYPE=\"CHECKBOX\" NAME=\"employee[]\" VALUE=\"$id\">$employee_name<BR>\n"; } } } } else { echo "<INPUT TYPE=\"CHECKBOX\" NAME=\"employee[]\" VALUE=\"$id\">$employee_name<BR>\n"; } } ?> In theory I see why the error is happening, I just dont see any other way to do this. I'm sure the answer is right in front of me or I just need to reorganize something, but I've been trying to do this for 5 hours and reading the foreach documentation on php.net isnt helping. Any help is appreciated. Quote Link to comment Share on other sites More sharing options...
Barand Posted July 27, 2007 Share Posted July 27, 2007 try <?php mysql_connect('localhost'); mysql_select_db('test3'); /** * Create array of selected employee ids * Blank array if none selected */ $selected_emps = isset($_GET['emp']) ? $_GET['emp'] : array(); echo '<form>'; $sql = "SELECT id, emp_name FROM employee ORDER BY emp_name"; $res = mysql_query($sql) or die (mysql_error()."<pre>$sql</pre>"); while (list($id, $name) = mysql_fetch_row($res)) { /** * if id is in the selected_emps array, check it */ $chk = in_array($id, $selected_emps) ? 'checked' : ''; echo "<input type='checkbox' name='emp[]' value='$id' $chk> $name <br />"; } echo "<input type='submit' name='sub' value='Submit'>"; echo '</form>'; ?> 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.