Как заменить содержимое запроса JQuery .post переменной JS? - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь написать запрос jQuery .post, который содержит содержимое в виде переменной JS вместо жесткого кода.

Пример работы в моей системе

function builder() {
       jQuery.post('/cart/add.js', {
                    items: [
                        {
                            quantity: 1,
                            id: 100
                        }
                        ,{
                            quantity: 1,
                            id: 200
                        }
                    ]
                });
}
document.getElementById('someLink').href = "/cart";
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="someLink" onclick="builder()"><input type="submit"
                    value="Click me" /></a>

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

Неработающий пример того, как я пытаюсь выполнить sh, будет выглядеть примерно так:

function builder() {

       var cartContents = "items: [{ quantity: 1, id: 100 } , { quantity: 1, id: 200 } ]";
       jQuery.post('/cart/add.js', {  
                    cartContents;   
                });
}
document.getElementById('someLink').href = "/cart";
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="someLink" onclick="builder()"><input type="submit"
                    value="Click me" /></a>
Эта строка "cartContents;" в функции post я знаю, что я неправ, и я не могу найти правильный способ объявить эту переменную JQuery так, чтобы просто вставить содержимое значения переменной. Любой совет очень ценится.

1 Ответ

0 голосов
/ 21 января 2020

Проблема в том, что вы назначаете cartContents как строковую переменную. Вместо этого просто сделайте его нормальным объектом, и он будет работать. Ниже приведен рабочий пример:

function builder() {

   var cartContents = {
                      items: [
                              { quantity: 1, id: 100 } , 
                              { quantity: 1, id: 200 } 
                              ]
                      };
   jQuery.post('/cart/add.js', cartContents);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...