我在安装带有我需要的变量的查询字符串时遇到了问题。 我有以下部分代码:
echo "<form class='additionals'>";
foreach($connection->query($sql2) as $additional)
{
echo "
<input class='additional-checkbox' type='checkbox' name='additional_id' value='{$additional['additional_id']}'/>{$additional['additional_name']} - ${$additional['additional_price']} <input type='number' name='additional_quantity' value='1' min='1' max='5'/><br/>
";
}
echo "</form>";
在此代码段中,我从数据库中获取值,并将每个值插入一个复选框。 要使用jQuery获取所选复选框的值:
$(document).ready(function()
{
$('.add').on('submit', function()
{
var product_id = $(this).closest('tr').find('.product-id').text();
var product_name = $(this).closest('tr').find('.product-name').text();
var quantity = $(this).closest('tr').find('input').val();
if ($(this).closest('tr').find('input.additional-checkbox').is(':checked'))
{
var additionals = $(this).closest('tr').find( '.additionals' ).serialize();
window.location.href = "add_to_cart.php?product_id=" + product_id + "&product_name=" + product_name + "&quantity=" + quantity + "&" + additionals;
}
else
{
window.location.href = "add_to_cart.php?product_id=" + product_id + "&product_name=" + product_name + "&quantity=" + quantity;
}
return false;
});
});
假设只选择了值为1
的复选框,并且与其数量值相关的前面输入为3
。我的输出应该是这样的:
add_to_cart.php?product_id=4&product_name=Pizza&quantity=1&additional_id=1&additional_quantity=3
这是我的小问题。我有我想要的部分输出,但其他数量输入的值也插入到序列化。通过这种方式输出如下:
add_to_cart.php?product_id=4&product_name=Pizza&quantity=1&additional_id=1&additional_quantity=3&additional_quantity=1&additional_quantity=1
如何仅在查询字符串中显示与所选复选框相关的输入数量?如何将复选框的输入与数量输入联系起来?
答案 0 :(得分:0)
看起来像是
var additionals = $(this).closest('tr').find('.additionals')
返回多个表单。是否有可能,在单TR
中你有多个这样的形式?
答案 1 :(得分:0)
试试这个
<input name="quantity_id" type="checkbox" data-quantity-input="quantity">
<input name="quantity" type="input" value="">
// get the data-quantity-input
var qtyInput = $(this).data('quantity-input');
// find the corresponding value if checkbox is checked
find('input[name='"+ qtyInput +'"]').val();
“data”属性应该是唯一的。您可以在“for”循环中使用索引。