Как преобразовать вывод массива select2 в одну строку? - PullRequest
1 голос
/ 28 марта 2020

Как преобразовать select2 вывод массива в одну строку (через запятую)? Так же, как это "task_owner":"Administrator,abc2". Токовый выход отделяется запятой, но в одном массиве "task_owner":["Administrator","abc2"]. Это происходит потому, что БД принимается строкой, а не массивом.

Другой вопрос, как преобразовать обратно в массив, так как во время редактирования Ajax отправит эту строку из БД, и мне, возможно, потребуется преобразовать обратно в массив для отображения.

Я был упомянут к этому Ссылка , но не работает.

<form id="myForm">
    <select type="text" class="form-control myClass" id="myID" multiple="multiple"></select>
</form>

$('.myClass').select2({
    tags: true
 });    

$('#btnSubmit').on('click',function(){
    var testOutput = "";   // I put this because an error appear so I create a new var but the output is = "null", why?
    var owner = $('#myID').val();

    if (owner.val() !== null && owner.val().length > 0){
        var testOutput = $('#myID') = owner.val().join(',');
        testOutput = Object.assign({}, {task_owner: testOutput.task_owner.join(",")})
    }

    // parameter that need to send to API
    var obj = {
        task_owner : testOutput,
        // Another parameter...
    };
    var params = JSON.stringify(obj);

    $.ajax({
        // My Ajax Condition...
    });
});

1 Ответ

1 голос
/ 28 марта 2020

Как и предполагалось:

$(".myClass").select2({
  tags: true
});

$("#btnSubmit").on("click", function() {
  var testOutput = ""; // I put this because an error appear so I create a new var but the output is = "null", why?
  var owner = $("#myID").val(); //
  if (Array.isArray(owner) && owner.length) {
    testOutput = owner.join(",");
  }
  var obj = {
    task_owner: testOutput
  };
  var params = JSON.stringify(obj);

  $.ajax({
    // My Ajax Condition...
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...