This is a script posted on phpbuilder.com via DAN:
http://www.phpbuilder.com/columns/laflamme20001016.php3?page=3
In short, it populates HTML checkbox lables and values based on the table values in const_skills ( a listing of developer skills)
What I need is to return the actual values stored in the user's table. So let say the developer checked off PHP as one of his skills and that gets stored in a user_skills table. I need to return the checkbox value as checked.
I'm not sure where to put that code?
Any help would be appreciated!
Andrea
<?php
/ insert code to connect to your database here /
/ get the checkbox labels /
$skills = get_checkbox_labels("const_skills");
/ create the html code for a formatted set of
checkboxes /
$html_skills = make_checkbox_html($skills, 3, 400, "skills[]");
?>
<html>
<body>
<br>
<form name="skills" method="POST" action="insertskills.php">
Check off your web development skills:
<? echo "$html_skills"; ?>
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>
<?php
function get_checkbox_labels($table_name) {
/ make an array /
$arr = array();
/ construct the query /
$query = "SELECT * FROM $table_name";
/ execute the query /
$qid = mysql_query($query);
/ each row in the result set will be packaged as
an object and put in an array /
while($row= mysql_fetch_object($qid)) {
array_push($arr, $row);
}
return $arr;
}
/* Prints a nicely formatted table of checkbox choices.
$arr is an array of objects that contain the choices
$num is the number of elements wide we display in the table
$width is the value of the width parameter to the table tag
$name is the name of the checkbox array
$checked is an array of element names that should be checked
*/
function make_checkbox_html($arr, $num, $width, $name, $checked) {
/ create string to hold out html /
$str = "";
/ make it /
$str .= "<table width=\"$width\" border=\"0\">\n";
$str .= "<tr>\n";
/ determine if we will have to close add
a closing tr tag at the end of our table /
if (count($arr) % $num != 0) {
$closingTR = true;
}
$i = 1;
if (isset($checked)) {
/ if we passed in an array of the checkboxes we want
to be displayed as checked /
foreach ($arr as $ele) {
$str .= "<td><input type=\"checkbox\" name=\"$name\" value=\"$ele->id\"";
foreach ($checked as $entry) {
if ($entry == $ele->value) {
$str .= "checked";
continue;
}
}
$str .= ">";
$str .= "$ele->value";
if ($i % $num == 0) {
$str .= "</tr>\n<tr>";
} else {
$str .= "</td>\n";
}
$i++;
}
} else {
/ we just want to print the checkboxes. none will have checks /
foreach ($arr as $ele) {
$str .= "<td><input type=\"checkbox\" name=\"$name\" value=\"$ele->id\">";
$str .= "$ele->value";
if ($i % $num == 0) {
$str .= "</tr>\n<tr>";
} else {
$str .= "</td>\n";
}
$i++;
}
}
/ tack on a closing tr tag if necessary /
if ($closingTR == true) {
$str .= "</tr></table>\n";
} else {
$str .= "</table>\n";
}
return $str;
}
?>