我有一些PHP代码可以从我的数据库中生成一堆商店项目。每个项目都有一个数量文本框和一个添加到购物车提交按钮以及一个带有特殊ID的隐藏值。使用jQuery处理表单
这里基本上是如何生成我的形式:
<form class='form-inline' id='addtocart_form' action='
additem.php?iid=$SaleItem_Id&u=".$_SESSION['id']." ' method='post' role='form'>
<div class='form-group'>
<div class='input-group'>
<input type='text' class='form-control' style= 'float: left; width:50%;' id='quantity'
name='quantity' value='0'></input>
<button type='submit' name='add_to_cart' id='add' class='btn btn-success'>Add to
Cart</button>
</div>
<input type='text' name='$SaleItem_Id' style='display: none;' id='$SaleItem_Id'
value='$SaleItem_Id'>
</form>
我的车完美的作品,但它刷新,并让你备份到屏幕的顶部。所以我决定实现jQuery。所有这些生成的表单都具有相同的ID:addtocart_form
。
$(function() {
$("#addtocart_form").on('submit' , function(e) {
e.preventDefault();
var thisForm = $(this);
var quantity = $("#quantity").val();
var dataString = $("#addtocart_form").serialize();
$.ajax({
type: "POST",
url: thisForm.attr('action'),
data: dataString,
});
$("#quantity").val("0");
return false;
});
});
显示在屏幕上的第一项工作完美。它将商品添加到购物车而不刷新屏幕。
页面上的所有其他表单都是在没有jQuery的情况下提交的。他们添加该项目,但重定向到我的操作的URL。
如何解决这个问题而不重写我的整个商店?我认为它有什么形式被告知要提交。
你不应该有一个以上的元素页面上的相同ID。如果您的所有表单使用相同的ID,那就是一个问题。你应该使用类来绑定你的事件,然后,如果需要的话,为每个表单分配一个唯一的ID(或者,如果你只能使用类,就不要在表单上使用ID) –
Like,div class?我会怎么做? – user3813156