Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有多个提交的AJAX_Php_Jquery_Ajax_Woocommerce - Fatal编程技术网

Php 具有多个提交的AJAX

Php 具有多个提交的AJAX,php,jquery,ajax,woocommerce,Php,Jquery,Ajax,Woocommerce,我目前有一个“添加到购物车”按钮,它从一个数组提交产品数据,并使用AJAX发布数据 目前提交时,三种产品中只有一种被发送到购物车 我被告知在每一篇AJAX文章之后使用.then函数,但我不确定如何将其与for()函数和数组结合起来 非常感谢您的任何帮助!多谢各位 function addtocart() { var products = [{ 'id': 32, 'qty': 2 }, { 'id': 33, 'qty': 1 }, { 'id

我目前有一个“添加到购物车”按钮,它从一个数组提交产品数据,并使用AJAX发布数据

目前提交时,三种产品中只有一种被发送到购物车

我被告知在每一篇AJAX文章之后使用.then函数,但我不确定如何将其与for()函数和数组结合起来

非常感谢您的任何帮助!多谢各位

function addtocart() {
  var products = [{
    'id': 32,
    'qty': 2
  }, {
    'id': 33,
    'qty': 1
  }, {
    'id': 34,
    'qty': 5
  }];

  $('.submit').on('click', function(e) {
    e.preventDefault();
    for (var j = 0; j < products.length; j++) {
      jQuery.ajax({
        type: 'POST',
        url: 'XXX/?post_type=product&add-to-cart=' + products[j].id + '&quantity=' + products[j].qty
      });
    }
  });
}

我被告知要做类似的事情,但如果没有在for()中添加ID,我就无法添加ID


更好的做法是修改接收服务器代码,以便在一个请求中接受多个产品。这将在服务器上更高效,对用户来说更快,特别是当要发出的产品请求数量超过允许的并发请求数量时。在提供的代码中,ajax调用中只有类型和url。你也在发送收集的数据吗?我同意@Rorymcrossan,将你的
产品
数组转换为JSON数组,并将其传递回服务器,在PHP中你可以迭代JSON数组。*请记住在中将JSON字符串转换回数组PHP@KondukterCRO数据在URL中连接在一起的查询字符串中传递。@Adam-我也不会把一个真实的、实时的开发人员站点URL放在一个问题中。你永远不知道。它现在比较旧了,但是MVC音乐商店教程中有一个购物车的示例。修改接收服务器代码以在一个请求中接受多个产品将是更好的做法。这将在服务器上更高效,对用户来说更快,特别是当要发出的产品请求数量超过允许的并发请求数量时。在提供的代码中,ajax调用中只有类型和url。你也在发送收集的数据吗?我同意@Rorymcrossan,将你的
产品
数组转换为JSON数组,并将其传递回服务器,在PHP中你可以迭代JSON数组。*请记住在中将JSON字符串转换回数组PHP@KondukterCRO数据在URL中连接在一起的查询字符串中传递。@Adam-我也不会把一个真实的、实时的开发人员站点URL放在一个问题中。你永远不知道。它现在比较旧了,但是MVC音乐商店教程有一个购物车的例子
function addtocart() {
  var products = [{'product_id':32,'quantity':2},{'product_id':33,'quantity':1},{'product_id':34,'quantity':5}];
  $('.submit').on('click', function(e){
    e.preventDefault();
    $.ajax(
      { 
        type:'POST',
        url:'XXX/?post_type=product&add-to-cart', 
        data:JSON.stringify(products) 
       }
     );
     console.log(JSON.stringify(products));
  });
}
addtocart();
url: 'XXX/?post_type=product&add-to-cart='+IDHERE