ajax的每个请求都会给出响应数据

时间:2016-01-03 15:15:58

标签: jquery ajax

以下代码在每个请求中提供相同的产品ID 是什么导致了这个问题。

这是与每种产品相关联的表单代码。

  <form  action="" method="" id="formproduct">
  <input type="hidden" name="id" class="productid" 
  value="<?php echo $row['Product-id'];?>" >
   <button  name="submit" class="btn">Add To Cart</button>
       </form>

这是ajax请求代码。

   var formData = {
        'product': jQuery(".productid").attr("value")
    };

jQuery.ajax({
            type: "POST",
            url: "server-cart.php",///contain the url of ajax 
            data:formData,
            dataType:"json",

这里我从请求中获取了id。

 $id=$_REQUEST["product"];

3 个答案:

答案 0 :(得分:2)

.attr()返回value设置的原始html.val()返回value元素的当前input。尝试将.val()替换为.attr(),使用.change()检索value元素的当前input

$("input").change(function() {
   // `$(this).attr("value")` : `123` : original `value` set at `input`
   // `$(this).val()` : current `value` of `input` element
   console.log($(this).val(), $(this).attr("value"))
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<input value="123" />

答案 1 :(得分:1)

你必须喜欢

这里你有多种形式我认为

<form  action="" method="" id="formproduct">
  <input type="hidden" name="id" class="productid" 
  value="<?php echo $row['Product-id'];?>" >
   <button  name="submit" class="btn" onclick="saveProduct(this)">Add To Cart</button>
       </form>

<强>的jQuery

function saveProduct(thisObj){
           //here we find productid value of current row 
           var formData = {
                  'product': jQuery(thisObj).closest(".productid").val();
                };

           jQuery.ajax({
            type: "POST",
            url: "server-cart.php",///contain the url of ajax 
            data:formData,
            dataType:"json",
            success:function(data){
            }
           });
}

答案 2 :(得分:1)

所以我猜你的页面上有多个表单,有很多不同的产品。您必须重写脚本以依赖正确的表单:

$("form").on("click", "button[name=submit]", function(){

    var form = $(this).closest("form"); // find the form to relate to
    var data = { product: $(".productid", form).val() }; // here we fetch product id from the input inside the form

    // do ajax-request
    // ...

    return false;
});