PHP:尝试从foreach循环调用ajax

时间:2016-09-28 09:27:53

标签: javascript php

我正在将数据从数据库循环到一个表单,该表单使Ajax请求将项目添加到购物篮/购物车。除了只添加数组中的第一项外,一切正常吗?我已经尝试使用类作为id(独特的

echo "<div class='col-100 border-temp bg-orange'>"; 
echo "<div class='col-50 border-temp'>"; 

foreach ($result as $key => $result) { 
  $m = $result["model_no"]; 
  $q = $result["qty_available"]; 
 
  echo "<form method='post' action='/stock-clearance' class='stock_clearance bg-blue'>"; 
  echo "<label for='model_no'><h2>Model No</h2></label>"; 
  echo "<input id='model_no' name='model' type='text' placeholder='Paste model no... ' value='$m' />"; 
  echo "<span id='model_error'></span>"; 
  echo "<label for='quantity'>Quantity</label><br />"; 
  echo "<input id='quantity' name='quantity' value='1' type='number' min='1' max='$q'>"; 
  echo " <span id='quantity_error'></span>"; 
  //echo "<input id='sc_add_to_cart' name='' value='$key' type='button'>"; 
  echo "<input id='sc_add_to_cart' name='sc_add_to_cart' value='Add to Basket' type='submit'>"; 
  echo "</form>"; 
} // End foreach loop 
echo "</div>"; 

) 我的JS代码如下:

$('#sc_add_to_cart').on('click', function(e) {

        e.preventDefault();
        var form = $('.stock_clearance');
        hideStockClearanceMessages(form);

        var request = $.ajax({
            beforeSend: function() { form.css({ opacity: 0.4 }); },
            url: 'ajax.php',
            cache: 'false',
            data: {
                action: "sc-add-to-cart",
                model: $('input[name="model"]').val(),
                quantity: $('input[name="quantity"]').val()
            }
        });

enter image description here

2 个答案:

答案 0 :(得分:0)

您不能为不同的输入使用相同的ID。 ID必须是唯一的。而不是ID使用CLASS属性

答案 1 :(得分:0)

1-有时因为缓存问题而无法运行,因此您必须在通话中添加种子。

function seed() {
  return Math.floor((Math.random() * 10000) + 1);
}

$('#sc_add_to_cart').on('click', function(e) {

        e.preventDefault();
        var form = $('.stock_clearance');
        hideStockClearanceMessages(form);

        var request = $.ajax({
            beforeSend: function() { form.css({ opacity: 0.4 }); },
            url: 'ajax.php?sid=' + seed(),
            cache: 'false',
            data: {
                action: "sc-add-to-cart",
                model: $('input[name="model"]').val(),
                quantity: $('input[name="quantity"]').val()
            }
        });

  1. 请仅将ID用于一个元素。它们必须是独一无二的您可以改为使用CLASS