繁体   English   中英

php增加和减少产品数量?

[英]php increase and decrease quantity of product?

我是php的菜鸟,但我的问题是:我有一个while循环,它向我展示了db中的所有产品我试图在“立即购买”按钮旁边添加一个+和-数量按钮,按下它们会增加和减少(只显示数字不会影响数据库)但问题是数量不会超过数字 2。有人可以借给我一些大脑吗?

$value = 1; //to be displayed
if(isset($_POST['incqty'])){
$value= $value +1;
echo $value;
}

if(isset($_POST['decqty'])){
$value = $value -1;                                            
echo $value;
}

<form method='post'>
<input type='hidden' name='item'/>
<td><button name='incqty'>+</button><input type='text' size='1' name='item' value='$value'/><button name='decqty'>-</button></td>
</form>

我已经尝试过用 js 来做

<form name="f1"> <input type='text' name='qty' id='qty' />
<input type='button' name='add' onclick='javascript:document.getElementById("qty").value++;' value='+'/> 
<input type='button' name='subtract' onclick='javascript: document.getElementById("qty").value--;' value='-'/> 
</form>

但是按钮无法点击...

我猜你正在学习 PHP,因为这不是用 javascript 来做的。 下面的代码应该适合你:

<?php
$value = isset($_POST['item']) ? $_POST['item'] : 1; //to be displayed
if(isset($_POST['incqty'])){
   $value += 1;
}

if(isset($_POST['decqty'])){
   $value -= 1;                                            
}
?>

<form method='post' action='<?= $_SERVER['PHP_SELF']; ?>'>
   <!--<input type='hidden' name='item'/> Why do you need this?-->
   <td>
       <button name='incqty'>+</button>
       <input type='text' size='1' name='item' value='<?= $value; ?>'/>
       <button name='decqty'>-</button>
   </td>
</form>

如果我理解了这个问题,您需要显示购物车中商品的价值,然后按 + 和 - 按钮进行修改。

我认为您应该为此使用 javascript(正如您所说的那样不会影响数据库)

我正在用 jQuery 编写一些代码来显示加号按钮的示例

$('button[name="incqty"]').bind('click', funcion(){
  var actual = $('input[name="intem"]').val();
  if (actual <= 1) {
    actual = actual +1;
  } 
  $('input[name="intem"]').val(actual);
});

当然最好不要在代码中硬编码值并使用常量或变量(对于 1 限制),但我希望这个例子对你有所帮助。

我试过你的 javascript 代码片段,它工作得很好。

话虽如此,您是否有理由不使用 HTML 数字输入?

<input type="number" name="quantity" min="1" max="99">

编辑:我使用 Daan 的答案中的代码作为模板,但是...

<?php
$value = isset($_POST['item']) ? $_POST['item'] : 1; //to be displayed
?>

<form method='post' action='<?= $_SERVER['PHP_SELF']; ?>'>
   <!--<input type='hidden' name='item'/> Why do you need this?-->
   <td>
       <input type="number" name="item" min="1" max="99" value="<?= $value; ?>">
   </td>
</form>
<input type="button" value = "-" onclick="minusbot()" />    
<input type="number" name="kgcount" id = "kilohere" value = "1" >
<input type="button" value = "+" onclick="plusbot()" />                 

<script>
    function minusbot()
    {
        document.getElementById('kilohere').value = parseInt(document.getElementById('kilohere').value) - 1;
        var checknumifzero = parseInt(document.getElementById('kilohere').value);

        if(checknumifzero < 1) //preventing to get negative value
        {
            document.getElementById('kilohere').value = 1;
        }
    }   

    function plusbot()
    {
        document.getElementById('kilohere').value = parseInt(document.getElementById('kilohere').value) + 1;
        var checknumiffifty = parseInt(document.getElementById('kilohere').value);

        if(checknumiffifty > 50) //just a limit
        {
            document.getElementById('kilohere').value = 50;
        }
    }
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM