我想要什么:
我想用当前用户权限更新一个Multiple选项 如果我在jquery上手动进行操作,它将起作用:
$('#edit-input-perm').val(['A','B','C']).trigger('change');
在同一个jquery上,我有一个ajax调用来获取我数据库中的数据:
$.ajax({
url: 'api/admin/crud/crud-fetch-user.php',
type: 'POST',
dataType: "json",
data : {id:id, func:func},
success : function(response){
我的 crud-fetch-user.php 获取并返回:
< MYSQL connection here >
$permString = "[".($perm['permZad'] == 1 ? '\'zad\',': '').($perm['permZof'] == 1 ? '\'zof\',': '').($perm['permZfr'] == 1 ? '\'zfr\',': '').($perm['permZau'] == 1 ? '\'zau\',': '').($perm['permZco'] == 1 ? '\'zco\',': '').($perm['permZte'] == 1 ? '\'zte\',': '').($perm['permClt'] == 1 ? '\'clt\',': '');
$permList=rtrim($permString ,", "); // removes the last ,
$permList = $permList."]";
$retorno = array('codigo' => 1, 'id' => $id, 'u' => $username, 'as' => $accountStatus, 'aim' => $avatarImg, 'na' => $name, 'em' => $email, 'ph' => $phone, 'isc' => $isClient, 'frcmp' => $fromCompany, 'frfil' => $fromFilial, 'rol' => $role, 'permList' => $permList);
echo json_encode($retorno);
Json返回'permList'=> $ permList
permList包含['perm1','perm2','perm3','perm4'],如果在提取时值为1。
到目前为止很好。
现在回到我的Jquery代码:
response.permList现在包含['perm1','perm2','perm3','perm4']
我需要将其放入
$('#edit-input-perm')。val( HERE )。trigger('change');
答案 0 :(得分:1)
好吧,如果您希望所有的键都为一,那么过滤器将起作用。
var values = Object.keys(response)
.filter(key => response[key] === 1)
或
var values = Object.keys(response)
.filter(function (key) { return response[key] === 1; })
$('#edit-input-perm').val(values).trigger('change');