JavaScript, синтаксический анализ нескольких значений в переменной - PullRequest
0 голосов
/ 25 января 2019

У меня есть рабочая HTML-форма (в laravel), которая использует вызов javascript для сотрудника Ajax.

Сейчас я использую консольный журнал, чтобы убедиться, что мое событие click показывает переменные, которые оно делает.

Однако из-за того, что мои значения ниже, я получаю несколько значений в одной переменной, и мне интересно, есть ли способ проанализировать их в свои.

Например, в моемФорма У меня есть несколько значений, разделяющих ячейки таблицы:

<form id="saveLineup">
@foreach($lists as $list)

  <tr style="text-align:center;">
      <td id="groupNumber">{{$list['product']}} - {{$list['product_NAME']}}</td>
      <td id="detailColor">{{$list['detail']}}/{{$list['COLOR']}} - {{$list['description']}}</td>
      <td id="category">{{$list['CATEGORY']}}</td>
      <td><input id="addToLineup"> type="checkbox" <?php if ($list['LINE_UP'] == 1) echo "checked='checked'"; ?>></td>
  </tr>  

@endforeach
</form>

Но когда я регистрирую свои переменные, я получаю

category: "categoryOne" //which is correct
detailColor: "123/Blue - Description"
productNumber: 123 - productOne

Что я хотел бы сделать, это проанализировать их и сделать все какотдельные значения, например, так:

category:"categoryOne"
detail: "123"
color: "Blue"
productNumber: "123"
productDescription: "productOne"

Есть ли способ сделать это в моем JS?

$("#addToLineup").click(function (e) {

  var productNumber = document.getElementById("productNumber").innerHTML = productNumber;
  var detailColor = document.getElementById("detailColor").innerHTML = detailColor;
  var category = document.getElementById("category").innerHTML = category;

  updatedata.productNumber = productNumber;
  updatedata.detailColor = detailColor;
  updatedata.category = category;

  $.ajax({
    url: "/test/addToLineup",
    data: updatedata,
    _token: phpVariables.csrfToken,
    type: "POST",
    beforeSend: function () {
      showLoading(element);
    },
    success: function (data) {
      location.reload();
    },
  });
});

1 Ответ

0 голосов
/ 25 января 2019

Я считаю, что самый простой способ - это разделить ваши переменные следующим образом:

var detailColor = "123/Blue - Description";
var productNumber = "123 - productOne";

var first = detailColor.split(' - ');
var just_color = first[0].split('\/');
var detail = just_color[0];
var color = just_color[1];

var second = productNumber.split(' - ');
var product_number = second[0];
var product_description = second[1];

console.log(detail , color, product_number, product_description);
...