Page 1 of 1
Pulling Checkbox data from a table
Posted: Mon Oct 20, 2008 7:05 am
by funkymeerkat
Hi, i have created a form which sends data to a table...
The form is a checklist, and i want the form to be filled out gradually throughout the day. Therefore i would expect that someone may check one box and submit and then reopen the form later to check another. Therefore, when they open the form later i require the one they have already checked to display as checked. I don't want to use cookes/sessions anything like that though. I need to pull the "checked data" from a table.
Can this be done and if so can someone give me an indication on how i can echo this data out of my table back into the form depending on whether it was checked or not.
Any help would be much appreciated.
Cheers,
Paul
Re: Pulling Checkbox data from a table
Posted: Mon Oct 20, 2008 7:10 am
by papa
Create a field in the db table that stores a value if checked.
Then when you fetch the data you simply see if that field has a value and echo "checked=\"checked\" in the checkbox.
Code: Select all
!empty($check_field) ? $checked = "checked=\"checked\"" : $checked="";
echo "<input type=\"checkbox\" name=\"foo\" $checked />\n";
Something like that...
Re: Pulling Checkbox data from a table
Posted: Mon Oct 20, 2008 10:26 am
by funkymeerkat
Hi thanks for the reply.
I sort of understand but seem to see how to fit it into my code...
For example if my code is the following....
<?php
include("includes/login_details.inc");
mysql_connect ($dbhost, $dbuser, $dbpass) or die (mysql_error()); //Connects to database
mysql_select_db ($dbname) or die (mysql_error()); //Selects your database
$sql = "SELECT * FROM passover where date = '$date' and shift = 'DAY'";
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "<font size=2 face=Tahoma>There is a problem. There is no passover form created for today's date. Please try again, or use a paper copy.</font>";
}
while ($row = mysql_fetch_assoc($result)) {
echo "<form method=post action=passover-confirm.php onSubmit='return checkrequired(this)' >
<table width='650' border='0' cellspacing='3' cellpadding='3'><tr>
<td width=275><font size=1 face=Verdana, Arial, Helvetica, sans-serif>Check
Previous Passover Form</font></td>
<td width=50><font size=1 face=Verdana, Arial, Helvetica, sans-serif>
<input type=checkbox name=previous_passover value=checkbox>
</font></td>
<td width=275><font size=1 face=Verdana, Arial, Helvetica, sans-serif>Check
4730 is AUTO-IN on Frt Dsk Lft (8am)</font></td>
<td width=50><font size=1 face=Verdana, Arial, Helvetica, sans-serif>
<input type=checkbox name=checkbox3 value=checkbox>
</font></td>
</tr>
</table>
</form>";
}
mysql_free_result($result);
mysql_close();
?>
Where would you add that so that it echos the info...
Bearing in mind i am already displaying data from a table as above. How would i parse the info in...
I thought perhaps like....
<tr>
<td width=275><font size=1 face=Verdana, Arial, Helvetica, sans-serif>Check
Previous Passover Form</font></td>
<td width=50><font size=1 face=Verdana, Arial, Helvetica, sans-serif>
<input type=checkbox name=previous_passover value=checkbox>
</font></td>
<td width=275><font size=1 face=Verdana, Arial, Helvetica, sans-serif>Check
4730 is AUTO-IN on Frt Dsk Lft (8am)</font></td>
<td width=50><font size=1 face=Verdana, Arial, Helvetica, sans-serif>
<input type=checkbox name=checkbox3 value=checkbox>
</font></td>
</tr>
Re: Pulling Checkbox data from a table
Posted: Mon Oct 20, 2008 10:33 am
by aceconcepts
Where would you logically put it yourself?
Do a bit of trial and error - it's a good way to learn

Re: Pulling Checkbox data from a table
Posted: Mon Oct 20, 2008 11:14 am
by funkymeerkat
Sorry never put where i'd put it (got caught up at work...)
To be honest i do have a reasonable grasp of php, but i have never actuall tried to echo out these values so i really don't know.
I have trid what the guy said in my code and nothing seems to work...
Although i dont get any errors....
Re: Pulling Checkbox data from a table
Posted: Mon Oct 20, 2008 11:19 am
by aceconcepts
Well, you could run the check immediately after the while loop code:
Code: Select all
while ($row = mysql_fetch_assoc($result)) {
$checked="";
!empty($check_field) ? $checked = "checked=\"checked\"" : $checked="";
Next, all you need to do is add $checked variable to the form element:
Code: Select all
<input type=checkbox name=previous_passover value=checkbox <? echo $checked; ?>>
Re: Pulling Checkbox data from a table
Posted: Tue Oct 21, 2008 2:45 am
by funkymeerkat
Have tried that with no luck at all....
Been doing abit of investigation and thought i might be getting somewhere with this....
<td width=50><font size=1 face=Verdana, Arial, Helvetica, sans-serif>";
echo "<input type=checkbox name=previous_passover value=Yes";
if ($previous_passover=="Yes")
echo " Checked";
else
echo "";
echo ">
</font></td>
It doesnt work properly although i've been playing around with it a bit now....
Im sure its something really stupid thats staring me in the face, but just can't see it at the moment.
Re: Pulling Checkbox data from a table
Posted: Tue Oct 21, 2008 2:49 am
by papa
It's hard to tell with that code as it's parse errors everywhere. Please give us a little bit more.
Good practise is to write checked="checked" isntead of checked.
Re: Pulling Checkbox data from a table
Posted: Tue Oct 21, 2008 3:32 am
by funkymeerkat
Hi,
This is the whole page....
The particular problem i have highlighted red..
Code: Select all
<?php
$date=$_GET['date'];
include("includes/login_details.inc");
mysql_connect ($dbhost, $dbuser, $dbpass) or die (mysql_error()); //Connects to database
mysql_select_db ($dbname) or die (mysql_error()); //Selects your database
$sql = "SELECT * FROM nightstaffpassover where date = '$date' and shift = 'DAY'";
$result = mysql_query($sql);
//echo $sql;
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "<font size=2 face=Tahoma>There is a problem. There is no passover form created for today's date. Please try again, or use a paper copy.</font>";
}
// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
// then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result))
{
echo "<form method=post action=nightday-passover-confirm.php onSubmit='return checkrequired(this)' ><table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr>
<td>
<table width='650' border='0' cellspacing='3' cellpadding='3'>
<tr>
<td><font size='4' color='#3399FF' face='Arial, Helvetica, sans-serif'><strong>NIGHTSTAFF
<font color='#FF0000'>DAYSHIFT</font> PASSOVER FORM</strong></font></td>
</tr>
</table>
<table width='650' border='0' cellspacing='3' cellpadding='3'>
<tr>
<td background='images/seperator.png'> </td>
</tr>
</table>
<table width=650 border=0 cellspacing=3 cellpadding=3>
<tr>
<td width=275><font color='#3399FF' size='1' face='Verdana, Arial, Helvetica, sans-serif'><strong>TIME
SPECIFIC <input type=hidden name=date value=";
echo $row['date'];
echo ">
"; echo "
<input type=hidden name=id value=";
echo $row['id'];
echo ">
"; echo "</strong></font></td>
<td width=50><font size=1 face=Verdana, Arial, Helvetica, sans-serif>
</font></td>
<td width=275><font size=1 face=Verdana, Arial, Helvetica, sans-serif> </font></td>
<td width=50><font size=1 face=Verdana, Arial, Helvetica, sans-serif>
</font></td>
</tr><tr>
<td width=275><font size=1 face=Verdana, Arial, Helvetica, sans-serif>Check
Previous Passover Form</font></td>
<td width=50><font size=1 face=Verdana, Arial, Helvetica, sans-serif>";
[color=#FF0000]echo "<input type=checkbox name=previous_passover value=Yes";
if ($previous_passover==Yes)
echo " Checked>";
else
echo "";
echo ">[/color]
</font></td>
<td width=275><font size=1 face=Verdana, Arial, Helvetica, sans-serif>Check
4730 is AUTO-IN on Frt Dsk Lft (8am)</font></td>
<td width=50><font size=1 face=Verdana, Arial, Helvetica, sans-serif> ";
[color=#FF0000]echo "<input type=checkbox name=check_4730 value=Yes";
if ($check_4730==Yes)
echo " Checked>";
else
echo "";
echo ">[/color]
</font></td>
</tr>
</table>
<br>
<table width='200' border='0' cellspacing='3' cellpadding='3'>
<tr>
<td><font color='#3399FF' size='1' face='Verdana, Arial, Helvetica, sans-serif'><strong>MONITORING
ISSUES TO PASSOVER</strong></font></td>
</tr>
<tr>
<td><textarea name='textarea3' cols='100' rows='4' wrap='VIRTUAL' id='textarea3' STYLE='font-family: verdana; font-size:7pt; color:000066; background-color:ffffFF; border-top: 2px #71B8FF solid; border-left: 2px #71B8FF solid; border-bottom: 2px #71B8FF solid; border-right: 2px #71B8FF solid'></textarea></td>
</tr>
</table>
<br>
<table width='200' border='0' cellspacing='3' cellpadding='3'>
<tr>
<td><font color='#3399FF' size='1' face='Verdana, Arial, Helvetica, sans-serif'><strong>SERVER
REBOOTS BY NIGHTSTAFF</strong></font></td>
</tr>
<tr>
<td><textarea name='callpassovernotes' cols='100' rows='4' wrap='VIRTUAL' id='callpassovernotes' STYLE='font-family: verdana; font-size:7pt; color:000066; background-color:ffffFF; border-top: 2px #71B8FF solid; border-left: 2px #71B8FF solid; border-bottom: 2px #71B8FF solid; border-right: 2px #71B8FF solid'></textarea></td>
</tr>
</table>
<br>
<table width='200' border='0' cellspacing='3' cellpadding='3'>
<tr>
<td><font color='#3399FF' size='1' face='Verdana, Arial, Helvetica, sans-serif'><strong>NON-TECHNICAL
ISSUES TO PASSOVER</strong></font></td>
</tr>
<tr>
<td><textarea name='nontech' cols='100' rows='2' wrap='VIRTUAL' id='nontech' STYLE='font-family: verdana; font-size:7pt; color:000066; background-color:ffffFF; border-top: 2px #71B8FF solid; border-left: 2px #71B8FF solid; border-bottom: 2px #71B8FF solid; border-right: 2px #71B8FF solid'></textarea></td>
</tr>
</table>
<table width='650' border='0' cellspacing='3' cellpadding='3'>
<tr>
<td background='images/seperator.png'> </td>
</tr>
</table>
<br>
<table width='200' border='0' cellspacing='3' cellpadding='3'>
<tr>
<td><div align='center'>
<input type='submit' name='Submit2' value='REVIEW & SUBMIT PASSOVER FORM' STYLE='WIDTH: 300px; HEIGHT: 25px; font-family: verdana; font-size:7pt; color:ffffff; font-weight: bold; background-color:3399FF; border-top: 2px #3399FF solid; border-left: 2px #3399FF solid; border-bottom: 4px #3399FF solid; border-right: 2px #3399FF solid'>
</div></td>
</tr>
</table> </td>
</tr>
</table></form>";
}
mysql_free_result($result);
mysql_close();
?>
Re: Pulling Checkbox data from a table
Posted: Tue Oct 21, 2008 3:49 am
by papa
What is this table column called?
# if ($previous_passover==Yes)
# echo " Checked>";
You don't get any data from the db. Like so:
echo $row['id'];
if($row['passover'] == "Yes")
Either way, you need to use "".
Re: Pulling Checkbox data from a table
Posted: Tue Oct 21, 2008 3:59 am
by funkymeerkat
I totally get it now and it works a treat!
Excellent - thanks so much....