我是javascript和ajax的绝对初学者,这就是为什么我现在被卡住了。我的while循环中有2个不同的按钮,都能正常工作,只有一个小问题...
product-id
总是仅针对第一个元素或者如果我更改为最后一个元素而传递。
如何将正确的产品ID传递给脚本呢?
这是我的PHP文件:
<?php while ( $product = $browse->fetch( PDO::FETCH_ASSOC ) ) :
$postid = $product[ 'id' ];
$userid = 1; ?>
<div id="content_<?php echo $postid ?>">
<div id="reload_<?php echo $postid ?>" class="row postfarbe browse">
<form method='post' action="" onsubmit="return add();">
<input type="hidden" id="userid" value="<?php echo $userid ?>" class="input-box">
<input type="hidden" id="productid" value="<?php echo $postid ?>" class="input-box">
<input type="hidden" id="collection" value="1" class="input-box">
<input type="hidden" id="wish" value="0" class="input-box">
<input type="submit" id="submit" value="Add to Collection" class="btn my-2 my-sm-0 btn-outline-dark btn-sm">
</form>
</div>
</div>
<?php endwhile; ?>
我的JavaScript代码是:
function add()
{
var userid = document.getElementById("userid").value;
var productid = document.getElementById("productid").value;
var collection = document.getElementById("collection").value;
var wishlist = document.getElementById("wish").value;
if(userid && productid && collection && wishlist) {
$.ajax
({
type: 'post',
url: 'post_collection.php',
data: {
user_id:userid,
product_id:productid,
collection_id:collection,
wishlist_id:wishlist
},
success: function (response) {
$("#content_"+ productid).load(" #reload_" + productid);
}
});
}
return false;
}
</script>
我知道在我的例子中产品id始终相同,但如果循环中有10个或更多条目,我如何将正确的产品id传递到脚本中?
onsubmit="return add(2);">
中,其中'2'将是计数器/索引。 - Jeffform.submit
上设置事件处理程序,然后使用传入的元素(表单)来获取子元素及其值。 - Jeff