Как отправить объект и переменную на Ajax - PullRequest
1 голос
/ 06 апреля 2020

Когда я пытаюсь это сделать, это работает отлично:

$.ajax({
  url: 'index.php?route=product/product/quoteProduct',
  type: 'post',
  data: $('#product input[type=\'radio\']:checked, #product select),
  dataType: 'json',
  success: function(json) {
    // ...
  }
});

Теперь я хочу отправить переменную с объектом $('#product input[type=\'radio\']:checked, #product select). Я попытался это:

$.ajax({
  url: 'index.php?route=product/product/quote',
  type: 'post',
  data: {
    quantity: quantity, 
    option: $('#product input[type=\'radio\']:checked, #product select')
  },
  dataType: 'json',
  success: function(json) {
    // ...
  }
});

Однако моя консоль предупреждает:

TypeError: 'stepUp' вызывается для объекта, который не реализует интерфейс HTMLInputElement.

1 Ответ

1 голос
/ 06 апреля 2020

Проблема в том, что вы отправляете объект jQuery в запросе AJAX. Учитывая комментарий под вопросом, вы заявляете, что хотите отправлять только их значения, чего можно достичь, используя map():

$.ajax({
  url: 'index.php?route=product/product/quote',
  type: 'post',
  data: {
    quantity: quantity,
    option: $('#product :radio:checked, #product select').map((i, el) => el.value).get(),
  },
  dataType: 'json',
  success: function(json) {
    // ...
  }
});

Обратите внимание, что вы можете чередовать кавычки " и ', чтобы избежать необходимости затем убегать в последовательности. Вы также можете использовать :radio вместо input[type="radio"].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...