I am using a similar approach to a from I have where the admin must assign applications access to users. I have error checking in the form to avoid duplicates, but at least it should give you an idea of how I got it to work. I am using the checkboxes in an array and taking the value of the $_POST from the recordset values.
$AddData="no";
$MM_flag="MM_insert";
if((isset($_POST["insert"])) && (isset($_POST["MM_insert"])== "skills_access")) {
$AddData="yes";
$startWarning="no";
if (!$_POST['applications'] )
{
$AddData = "no";
$startWarning="yes";
?>
<div class="warningstart">Please complete the missing item(s) indicated. </div>
<?php
// if the applicaiton selection is missing - display error message
if (!isset($_POST['applications'])) { ?>
<div class="warning">
<li>Select at least one Application</li></div>
<?php } ?>
<div class="warningend"></div>
<?php
}
//else
}
mysql_select_db($database_mambo, $mambo);
$query_rsUserName = "SELECT * FROM mos_Corpusers ORDER BY username ASC";
$rsUserName = mysql_query($query_rsUserName, $mambo) or die(mysql_error());
$row_rsUserName = mysql_fetch_assoc($rsUserName);
$totalRows_rsUserName = mysql_num_rows($rsUserName);
mysql_select_db($database_mambo, $mambo);
$query_rsApps = "SELECT * FROM web_access_applications ORDER BY app_description ASC";
$rsApps = mysql_query($query_rsApps, $mambo) or die(mysql_error());
$row_rsApps = mysql_fetch_assoc($rsApps);
$totalRows_rsApps = mysql_num_rows($rsApps);
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$FoundMatch="";
if ((array_key_exists('insert', $_POST)) && $AddData!="no") {
// #1 - check whether any applications have been selected and if so, loop through the selected applicaitions and build value pairs ready for insertion into the skill_access table
$applications = array();
$AppID = $_POST['applications'];
if (isset($_POST['applications'])) {
foreach($AppID as $web_app_id) {
$check = "SELECT * FROM skills_access WHERE skills_access.web_app_id='" . $web_app_id . "' and skills_access.mambo_user_id='" . $mambo_user_id . "' ";
mysql_select_db($database_mambo, $mambo);
$checkRS=mysql_query($check, $mambo) or die(mysql_error());
$FoundMatch = mysql_num_rows($checkRS);
if ((is_numeric($web_app_id)) && $FoundMatch==0) {
$insertApps = "INSERT INTO skills_access (web_app_id, mambo_user_id) VALUES ('$web_app_id', '$mambo_user_id')";
$result1 = mysql_query($insertApps) or die(mysql_error());
$insertGoTo = "index.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
else
{
mysql_select_db($database_mambo, $mambo);
$findmatch = "SELECT * FROM web_access_applications WHERE web_app_id='" . $web_app_id . "'";
$findmatchRS=mysql_query($findmatch, $mambo) or die(mysql_error());
$row_rsfindmatch = mysql_fetch_assoc($findmatchRS);
$find = mysql_num_rows($findmatchRS);
$findmambouser = "SELECT * FROM mos_Corpusers WHERE id='" . $mambo_user_id . "'";
$findmambouserRS=mysql_query($findmambouser, $mambo) or die(mysql_error());
$row_rsfindmambouser = mysql_fetch_assoc($findmambouserRS);
$foundmambouser = mysql_num_rows($findmambouserRS);
"</br>".$row_rsfindmatch['app_description']."-".$web_app_id."-".$row_rsfindmambouser['username']."-".$mambo_user_id."Match Found and Record was not inserted!</br>";
}
}
}
}
?>
this form allows for check all checkboxes or uncheck all check boxes using javascript so in the head tag place this code (if you want to allow use) <script type="text/javascript">
var formblock;
var forminputs;
function prepare()
{ formblock= document.getElementById('skills_access'); <--your form name
forminputs = formblock.getElementsByTagName('input');
}
function select_all(name, value) { for (i = 0; i < forminputs.length; i++) {
// regex here to check name attribute
var regex = new RegExp(name, "i");
if (regex.test(forminputs[i].getAttribute('name')))
{
if (value == '1')
{
forminputs[i].checked = true;
}
else
{
forminputs[i].checked = false;
}
}
}
}
if (window.addEventListener)
{ window.addEventListener("load", prepare, false);
}
else if (window.attachEvent)
{ window.attachEvent("onload", prepare)
} else if (document.getElementById)
{ window.onload = prepare;}
</script>
now the form <form id="skills_access" name="skills_access" method="POST" >
<?php
if (($_POST) && ($FoundMatch > 0) && $AddData!="no") {
echo "<b>Duplicate Record(s) found.";
echo "Add aborted due to duplicate records.</b>";
/////////
mysql_select_db($database_mambo, $mambo);
$query_rsUserInfo = "SELECT * from skills_access, mos_Corpusers, web_access_applications WHERE skills_access.mambo_user_id= mos_Corpusers.id AND skills_access.web_app_id=web_access_applications.web_app_id ";
$rsUserInfo = mysql_query($query_rsUserInfo, $mambo) or die(mysql_error());
$row_rsUserInfo = mysql_fetch_assoc($rsUserInfo);
$totalRows_rsUserInfo = mysql_num_rows($rsUserInfo);
$MamboUserName=$row_rsUserInfo['username'];
///////////
///////////////
echo "<br/><br/>";
echo "Access to one of your selections was found during insert ";
echo "The access requested for the user was not entered. ";
echo "Please review the information below and re-enter the access selection ";
echo "<I>The information shown below indicates the users access to application(s) already assigned.</I><br/><br/>";
//$result = mysql_unbuffered_query("SELECT * from skills_access, mos_Corpusers, web_access_applications WHERE skills_access.mambo_user_id= mos_Corpusers.id AND skills_access.web_app_id=web_access_applications.web_app_id ");
$ID=$_POST['mambo_user_id'];
$username=$row_rsfindmambouser['username'];
$result = mysql_unbuffered_query("SELECT * from mos_Corpusers, web_access_applications WHERE mos_Corpusers.id= '$ID' and web_access_applications.web_app_id= '$web_app_id' ");
$set = array();
while ($record = mysql_fetch_object($result)) {
$set[$record->app_description][] = $record;
}
mysql_free_result($result);
foreach ($set as $app_description => $records) {
echo "<table>\n";
echo "<tr><th>{$username}</th> <th>{$app_description}</th><th></th></tr>\n";
foreach ($records as $record) {
// echo ($record);
}
echo "</table>\n";
}
////////////////
echo "<br/><br/>";
echo "<input type='button' name='OK' value='Return to List' onclick='window.history.go(-1)' />";
//}
// {
//else {
if (($_POST) && ($FoundMatch == 0) && $AddData!="no") {
echo"Access Added <br/><br/>";
echo "<input type='button' name='OK' value='Return to List' onClick=self.location='index.php' />";
}
}
//}
if ($AddData=="no"){
?>
<table width="579" border="0">
<tr>
<td colspan="2" valign="top" scope="row"> </td>
</tr>
<tr>
<td width="83" valign="top" scope="row">UserName:</td>
<td width="486" valign="top"><select name="mambo_user_id" id="mambo_user_id">
<?php
do {
?>
<option value="<?php echo $row_rsUserName['id']?>"><?php echo $row_rsUserName['username'] ?> - <?php echo $row_rsUserName['id']?></option>
<?php
} while ($row_rsUserName = mysql_fetch_assoc($rsUserName));
$rows = mysql_num_rows($rsUserName);
if($rows > 0) {
mysql_data_seek($rsUserName, 0);
$row_rsUserName = mysql_fetch_assoc($rsUserName);
}
?>
</select>
</td>
</tr>
<tr>
<td colspan="2" valign="top" scope="row">Select the Applications below that the user will have access to.</td>
</tr></table>
<table width="584">
<tr>
<td width="82" valign="top" scope="row"></td>
<td width="144" valign="top"> </td>
<td colspan="2" valign="top"> </td>
</tr>
<tr>
<td><span class="style7"><a href="#" onClick="select_all('applications', '1');">Check All</a>
<a href="#" onClick="select_all('applications', '0');">Uncheck All </a></span></td>
<td><label><strong>Application ID </strong></label></td>
<td width="342"><strong>Application Name </strong></td>
</tr>
<?php do { ?>
<tr>
<td><div align="center">
<input name="applications[]" type="checkbox" id="applications[]" value="<? echo $row_rsApps['web_app_id']; ?>"
<?php
$OK = isset($_POST['applications']) ? true : false;
if($OK && in_array($row_rsApps['web_app_id'], $_POST['applications'])) {
?> checked="checked"
<?php } ?>
/>
</div></td>
<td><?php echo $row_rsApps['web_app_id']; ?></td>
<td><?php echo $row_rsApps['app_description']; ?></td>
</tr>
<?php } while ($row_rsApps = mysql_fetch_assoc($rsApps)); ?>
<tr>
<td colspan="4"><label>
<div align="center">
<input type="submit" name="insert" value="Add Applications" id="insert"/>
<input name="Reset" type="reset" id="Reset" value="Reset" /> <input type="button" name="Cancel" value="Cancel" onClick="self.location='index.php'" />
<input type="hidden" name="MM_insert" id="MM_insert" value="skills_access">
</div>
</label></td>
</tr>
</table>
<?php }
?>
</form>
(There may be a bit more in this example than needed, but I was testing a few more things and have some additional stuff to add to it)
As I stated this is a simple example, but should get you started if nothing else.
Hope it helps!