Hallo ich möchte Rechte eines Benutzers vor dem Speichern (absenden des Formulars) mit dem Stand danach vergleichen um hier eventuelle entstandene Unterschiede in die Datenbank zu schreiben. Bisher gebe ich mir die Rechte aus mit einer Checkbox.
Der Wert der Checkbox wird jedoch nur an das Formular übermittelt, wenn ich die Box aktiviere. Hatte der Benutzer bereits ein Recht und ich entziehe es Ihm so wird dies nicht übergeben, daher der Vergleich. Oder gibt es eine bessere Möglichkeit?
Anbei mein Code:
Der Wert der Checkbox wird jedoch nur an das Formular übermittelt, wenn ich die Box aktiviere. Hatte der Benutzer bereits ein Recht und ich entziehe es Ihm so wird dies nicht übergeben, daher der Vergleich. Oder gibt es eine bessere Möglichkeit?
Anbei mein Code:
PHP:
<?
include('sessionhelpers.inc.php');
//$userId = $_GET['user'];
$userId="2";
$abfrage = "SELECT final.rightID, final.rightName, final.rightkatID, IF(SUM(final.hasRight)>=1, 1, 0) AS hasRight FROM ((SELECT r.rightID,r.rightName, r.rightkatID, IF(SUM(counter)>=1, 1, 0) AS hasRight FROM user_rm_rights r LEFT JOIN (SELECT rr.*, 1 AS counter FROM user_rm_role_rights rr, users ar WHERE ar.UserStatus_ID = rr.roleID AND ar.User_ID = $userId) rr ON r.rightID = rr.rightID GROUP BY r.rightID) UNION (SELECT a.rightID, r.rightName, r.rightkatID, a.adjustment AS hasRight FROM user_rm_rights r, user_rm_account_rights_adjust a WHERE r.rightID = a.rightID AND a.accountID = $userId)) AS final GROUP BY final.rightkatID, final.rightID";
$ergebnis = mysql_query($abfrage);
$count = mysql_num_rows($ergbebnis);
?>
<html>
<head></head>
<body>
<form action="checkrechte.php" method="post">
<?php
$tempSys=null;
while($row = mysql_fetch_object($ergebnis)){
if ($tempSys!=$row->rightkatID) {
echo "<li><span>".$row->rightkatID."</span></li>";
$tempSys=$row->rightkatID;
}
if ($row->hasRight == 0)
{
$check="";
} else {
$check="checked";
}
?>
<p>RECHT <?php echo $row->rightID; ?> - <input type="checkbox" name="recht_<?php echo $row->rightID; ?>" <? echo $check;?> value="<?php echo $row->hasRight; ?>"><label for="recht_<?php echo $row->rightID; ?>"><?php echo $row->rightName; ?></label></p>
<?php } ?>
<input type="submit" name="save">
</form>
</body>
</html>
Zuletzt bearbeitet von einem Moderator: