以下代码在每个请求中提供相同的产品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"];
答案 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;
});