Jquery .val()中的多个var-多选择更新

时间:2019-02-21 17:58:20

标签: javascript jquery

我想要什么:

我想用当前用户权限更新一个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');

1 个答案:

答案 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');