I have multiple checkbox below to add user access:
Each module have different ID. But now I confused how to get the checkbox value and then update it using ajax.
Example for:
- Module Location, I check Create and Edit.
- Module Department I check Only View
(Have same group ID)
I didn't get the logic how to pass it to ajax and save it to database based on Module ID and Group ID.
Source code:
$.ajax(
{
url: "loadModule.php",
type: "POST",
data:
{
groupName: $("#groupName").val()
},
dataType: "JSON",
success: function (jsonStr)
{
var len = jsonStr.length;
for(var i=0; i<len; i++)
{
var moduleID = jsonStr[i].moduleID;
var moduleName = jsonStr[i].moduleName;
var projectName = jsonStr[i].projectName;
var groupID = jsonStr[i].groupID;
var chkModule = jsonStr[i].chkModule;
var chkEdit = jsonStr[i].chkEdit;
var tr_str = "<tr id='"+jsonStr[i].moduleID+"'>" +
"<td>" + projectName + "</td>" +
"<td>" + moduleName + "</td>" +
"<td align='center'><input type='checkbox' id='"+jsonStr[i].moduleID+"' name='chk[]' class='chk' value='CREATE'/><input type='hidden' id='groupIDInput' value='"+jsonStr[i].groupID+"'/></td>" +
"<td align='center'><input type='checkbox' id='"+jsonStr[i].moduleID+"' name='chk[]' class='chk' value='EDIT'/></td>" +
"<td align='center'><input type='checkbox' id='"+jsonStr[i].moduleID+"' name='chk[]' class='chk' value='VIEW'/></td>" +
"<td align='center'><input type='checkbox' id='"+jsonStr[i].moduleID+"' name='chk[]' class='chk' value='DELETE'/></td>" +
"</tr>";
$('.dataShow2').show();
$("#tData tbody").append(tr_str);
}
}
What I want:
- Get the checkbox value using ajax
- Pass it to PHP to save to database.
JS btnUpdate
$('#btnUpdate').on('click', function()
{
var val = [];
$(':checkbox:checked').each(function(i){
val[i] = $(this).val();
});
var chkCreateInputValue = [];
$('input[name^=chkProjectInput]').each(function(){
chkCreateInputValue.push($(this).val());
});
$.ajax(
{
url: "updateGroupAccess.php",
type: "POST",
data:
{
chk: val,
groupIDInput: $("#groupIDInput").val(),
chkCreateInputValue: chkCreateInputValue
},
dataType: "JSON",
success: function (jsonStr)
{
$("#btnUpdate").attr({disabled: true, value: "Update"}).addClass('btn_inact').removeClass('btn_act');;
}
});
});
and the PHP
if(!empty($_POST['chk']))
{
foreach($_POST['chkCreateInputValue'] as $chkCreateInputValue)
{
if(!in_array($chkCreateInputValue, $_POST['chk'])){
$del = oci_parse($c1, "DELETE FROM WA_GA_TBL_ACCESSMODULES WHERE MODULEID_FK = '$chkCreateInputValue' AND GROUPID_FK = '$groupIDInput'");
oci_execute($del);
}
}
foreach($_POST['chk'] as $chk)
{
$qChk = oci_parse($c1, "SELECT * FROM WA_GA_TBL_ACCESSMODULES WHERE GROUPID_FK = '$groupIDInput' AND MODULEID_FK IN ('$chk')");
oci_execute($qChk);
if(oci_fetch($qChk) > 0)
{
$sql = oci_parse($c1, "UPDATE WA_GA_TBL_ACCESSMODULES SET CHKCREATE = 'Y' WHERE GROUPID_FK = '$groupIDInput' AND MODULEID_FK IN ('$chk')");
oci_execute($sql);
}
else
{
$date_added = date("d-M-Y H:i:s");
$sql = oci_parse($c1, "INSERT INTO WA_GA_TBL_ACCESSMODULES(MODULEID_FK, GROUPID_FK, DATEADDED, ADDEDBY) VALUES('$chk', '$groupIDInput', TO_DATE('$date_added', 'dd-MON-yyyy hh24:mi:ss'), '$getUserID')");
oci_execute($sql);
}
}
}
else
{
foreach($_POST['chkCreateInputValue'] as $chkCreateInputValue)
{
if(!in_array($chkCreateInputValue, $_POST['chk'])){
$del = oci_parse($c1, "DELETE FROM WA_GA_TBL_ACCESSMODULES WHERE GROUPID_FK = '$groupIDInput'");
oci_execute($del);
}
}
}