Javascript 如何获得用户选择的产品数量?

Javascript 如何获得用户选择的产品数量?,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我在一个电子商务网站上工作。现在我在单一产品描述页面,我有数量和添加到购物车按钮。我设定了一个初始数量 我可以增加和减少数量上点击加号和减号按钮 现在的问题是,我选择了数量四,我点击了添加到购物车按钮,它重定向到我正在检查输出的结帐页面 checkout.php 只是为了测试 if (isset($_POST['submit'])) { echo $action=$conn->real_escape_string($_POST['action']); echo $dec

我在一个电子商务网站上工作。现在我在单一产品描述页面,我有数量和添加到购物车按钮。我设定了一个初始数量

我可以增加和减少数量上点击加号和减号按钮

现在的问题是,我选择了数量四,我点击了添加到购物车按钮,它重定向到我正在检查输出的结帐页面

checkout.php

只是为了测试

if (isset($_POST['submit'])) {
    echo $action=$conn->real_escape_string($_POST['action']);
    echo $decrypted_p_id=$conn->real_escape_string($_POST['p_id']);
}
我得到了一个输出

   addcart
    1      //instated of one It should display four. right?
我知道我会得到一个,因为我设置了值=“1”,但还有其他选择吗 要获得用户选择的数量

或者你有其他代码来做这件事吗

谢谢你!
/*增加产品数量*/
/*增加产品数量*/
$(“.ddd”)。在(“单击”,函数(){
var$按钮=$(此),
$input=$button.closest('.sp quantity').find(“input.quantity input”);
var oldValue=$input.val(),
纽瓦尔;
如果($.trim($button.text())==“+”){
newVal=parseFloat(oldValue)+1;
}否则{
//不允许在零以下递减
如果(旧值>1){
newVal=parseFloat(oldValue)-1;
}否则{
newVal=1;
}
}
$input.val(newVal);
var价格=$('总金额')。数据('价格');
$('.total_amount').html(price*newVal);
});
.sp数量{
宽度:150px;
浮动:左;
高度:42px;
右边距:10px;
}
.sp负数{
宽度:40px;
高度:40px;
浮动:左;
文本对齐:居中;
}
.sp输入{
边框:1px实心#e1e1;
左边框:0px纯黑;
浮动:左;
}
.sp plus{
宽度:41px;
高度:40px;
边框:1px实心#f44336;
浮动:左;
左边距:-1px;
文本对齐:居中;
}
.sp输入{
宽度:40px;
高度:39px;
文本对齐:居中;
边界:无;
}
.sp输入:焦点{
边框:1px实心#f44336;
边界:无;
}
.sp减a、.sp加a{
显示:块;
宽度:100%;
身高:100%;
填充:2px;
字体大小:22px;
颜色:#fff;
背景#f44336;
}
.产品详细信息.购物车按钮{
宽度:100%;
背景色:#f44336;
边界:0;
填充:10px0;
垂直对齐:底部对齐;
颜色:#fff;
最大宽度:150px;
}

添加到购物车
您应该将

<input type="text" class="quntity-input" value="1" />


元素,以便在单击“添加到购物车”按钮时提交所选数量。另一种方法是在递增或递减“p_id”输入元素的值时,将其设置为javscript代码中所需的数量。

在递增/递减时,您似乎没有更新
p_id

var qty = $("#p_id");
  $(".ddd").on("click", function() {
    var $button = $(this),
      $input = $button.closest('.sp-quantity').find("input.quntity-input");
    var oldValue = $input.val(),
      newVal;
    if ($.trim($button.text()) == "+") {
      newVal = parseFloat(oldValue) + 1;
    } else {
      // Don't allow decrementing below zero
      if (oldValue > 1) {
        newVal = parseFloat(oldValue) - 1;
      } else {
        newVal = 1;
      }
    }
    $input.val(newVal);
    var price = $('.total_amount').data('price');
    $('.total_amount').html(price * newVal);
    qty.val(newVal);
  });

现在,当您增加或减少用户数量时,它将更新
p_id
输入值,这是您正在从PHP检索的值您的JS正在使用class
.qentity input
更新输入值,但您正在查看名为p_id的隐藏字段


无法提交不在表单标记内的输入,这就是为什么
。未提交定量输入的原因。如果你想让输入的值反映新的值,你还需要用名称p_id更新输入值。

@MagnusEriksson是的,但他从PHP检索的是产品数量,谁知道呢,p_id是我的产品id,而不是数量。
p_id
不是你的产品id吗?如果没有,你怎么知道要添加什么产品?是的,p_id是我的产品id我只想在下一页和表单标签中传递数量,我有“添加到购物车”和“产品id”字段。您只需将数量输入放入表单中,它将与其他输入一起提交。旁注:您应该使用准备好的语句,而不是转义和连接DB查询。即使是
mysqli\u real\u escape\u string()
在某些情况下也存在安全问题。