Javascript Jquery.val()中有多个变量-多选择更新

Javascript Jquery.val()中有多个变量-多选择更新,javascript,jquery,Javascript,Jquery,我想要的是: 我想用当前用户权限更新多个选项 如果我在jquery上手动执行此操作,它可以工作: $('#edit-input-perm').val(['A','B','C']).trigger('change'); 在同一个jquery上,我有一个ajax调用,用于从数据库中获取fech me数据: $.ajax({ url: 'api/admin/crud/crud-fetch-user.php', type: 'POST', d

我想要的是:

我想用当前用户权限更新多个选项 如果我在jquery上手动执行此操作,它可以工作:

$('#edit-input-perm').val(['A','B','C']).trigger('change');
在同一个jquery上,我有一个ajax调用,用于从数据库中获取fech me数据:

$.ajax({
          url: 'api/admin/crud/crud-fetch-user.php',
          type: 'POST',
          dataType: "json",
          data : {id:id, func:func},
          success :  function(response){
My 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

如果获取时的值为1,则permList包含['perm1'、'perm2'、'perm3'、'perm4']

到目前为止还不错

现在回到我的Jquery代码:

response.permList现在包含['perm1','perm2','perm3','perm4']

我需要把它放在


$'edit-input-perm'.valHERE.trigger'change'

如果您希望所有键都是一个键,那么过滤器将起作用

var values = Object.keys(response)
  .filter(key => response[key] === 1)


理解你的问题有点让人困惑,因为我感觉你在混合PHP和JavaScript代码。你能在你的问题中清楚地说明这一点吗?另外,了解HTML是什么也会有所帮助。var zad=response.zad。。。为什么要为响应的每个属性指定一个变量,而不是直接使用response.zad?@DanielBeck,因为数组是您在jQuery中设置多个select值的方式……我猜您返回的数组方法不是数组,而是字符串。很难说,因为我们不知道你是如何给出答案的。我把它存储在js中的变量中,而不是毫无意义的数组中。。。不,问题是您返回的是字符串而不是数组。再说一次,我看不出发生了什么,因为我没有看到任何代码。
var values = Object.keys(response)
  .filter(function (key) { return response[key] === 1; })

$('#edit-input-perm').val(values).trigger('change');