Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按按钮时递增或递减_Javascript_Php - Fatal编程技术网

Javascript 按按钮时递增或递减

Javascript 按按钮时递增或递减,javascript,php,Javascript,Php,表格编号: <td> <form action="cart.php" method="get"> <input type="button" onclick="buttonSubtract1()" name="subtract1" value="-"/> <input type="text" size="4" id="qty1" name="quantity1" value="0"/&

表格编号:

<td>
    <form action="cart.php" method="get">
        <input type="button" onclick="buttonSubtract1()" name="subtract1" 
               value="-"/>
        <input type="text" size="4" id="qty1" name="quantity1" value="0"/>
        <input type="button" onclick="buttonAdd1()" name="add1" value="+"/>
        <input type="submit" name="product1" value="Add"/>
    </form>
</td>
我使用javascript将代码更改为增量和反增量,这两种方式都很好,因此我尝试使其仅在数字为正数时才起作用,但现在增量工作正常,但不允许任何数字的反增量。为什么会这样?


<?php if (isset($_GET['subtract1'])) { 
    $quantity1 = $_GET['$quantity1'];
    $quantity1--;
}
?>

<?php if (isset($_GET['add1'])) { 
    $quantity1 = $_GET['$quantity1'];
    $quantity1++;
}
?>

<form action="cart.php" method="get">
     <input type="submit" name="subtract1" value="-"/>
     <input type="text" size="4" name="$quantity1" value="<?php echo $quantity1 ?>"/>
     <input type="submit" name="add1" value="+"/>
尝试以下方法。 确保php代码位于html之上(以便在输出数据之前对其进行处理):



我的理解是获取对对象(qty1)的引用,然后根据需要测试或更改属性。此代码似乎完成了所需的操作。它发送适当的值作为PHP中选中的“$\u GET”参数

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>test</title>
    <script type = 'text/javascript'>
        var rfvGlobal = {};
        function buttonAdd1() {
            rfvGlobal.qty1.value++;
        }
        function buttonSubtract1() {
            if (rfvGlobal.qty1.value > 0) {
                rfvGlobal.qty1.value--;
            }
        }
    </script>
  </head>
  <body>

<table>
<td><form action="" method="get">
     <input type="button" onclick="buttonSubtract1()" name="subtract1" value="-"/>
     <input type="text" size="4" id="qty1" name="quantity1" value="0"/>
     <input type="button" onclick="buttonAdd1()" name="add1" value="+"/>
     <input type="submit" name="product1" value="Add"/>
 </form></td>
 </table>  
 <script>
    rfvGlobal.qty1 = document.getElementById('qty1');
 </script>
</body>
</html>

测试
var rfvGlobal={};
函数按钮ADD1(){
rfvGlobal.qty1.value++;
}
函数按钮SUBSTRACT1(){
如果(rfvGlobal.qty1.value>0){
rfvGlobal.qty1.value--;
}
}
rfvGlobal.qty1=document.getElementById('qty1');

您的问题是,您没有检查元素的值,只检查
qty1
,该值在页面加载时设置,但从未更新

function buttonSubtract1() {
    var qtyElement = document.getElementById('qty1'); // the element
    if (qtyElement.value > 0) qtyElement.value = --i; // if its value at this point in time >0 change it
}
上面修复了您当前的代码,但是

你为什么不写得少一点(这是你唯一需要的函数)

更多按钮

<form action="cart.php" method="get">
     <input type="button" onclick="buttonAlter(1, -1)" name="subtract1" value="-"/>
     <input type="text" size="4" id="qty1" name="quantity1" value="0"/>
     <input type="button" onclick="buttonAlter(1, 1)" name="add1" value="+"/>
     <input type="submit" name="product1" value="Add"/>
    <br />
     <input type="button" onclick="buttonAlter(2, -1)" name="subtract1" value="-"/>
     <input type="text" size="4" id="qty2" name="quantity1" value="0"/>
     <input type="button" onclick="buttonAlter(2, 1)" name="add1" value="+"/>
     <input type="submit" name="product1" value="Add"/>
    <br />
     <input type="button" onclick="buttonAlter(3, -1)" name="subtract1" value="-"/>
     <input type="text" size="4" id="qty3" name="quantity1" value="0"/>
     <input type="button" onclick="buttonAlter(3, 1)" name="add1" value="+"/>
     <input type="submit" name="product1" value="Add"/>
</form>




美元GET包含什么?显示完整代码,提交按钮在哪里?如何发送表单数据?这是因为数量是在页面加载时设置的,从未更新。检查我的答案。与$\u GET无关。如何从按钮中进行加减操作?在设置($\u GET['quantity1'])之前,是否将$quantity1设置为任何值?或者什么东西不起作用?
function buttonSubtract1() {
    var qtyElement = document.getElementById('qty1'); // the element
    if (qtyElement.value > 0) qtyElement.value = --i; // if its value at this point in time >0 change it
}
function buttonAlter(which, byWhat){
    var qtyElement = document.getElementById('qty' + which);
    if (byWhat > 0 || qtyElement.value > 0) qtyElement.value = parseInt(qtyElement.value) + byWhat;    
}
<form action="cart.php" method="get">
     <input type="button" onclick="buttonAlter(1, -1)" name="subtract1" value="-"/>
     <input type="text" size="4" id="qty1" name="quantity1" value="0"/>
     <input type="button" onclick="buttonAlter(1, 1)" name="add1" value="+"/>
     <input type="submit" name="product1" value="Add"/>
    <br />
     <input type="button" onclick="buttonAlter(2, -1)" name="subtract1" value="-"/>
     <input type="text" size="4" id="qty2" name="quantity1" value="0"/>
     <input type="button" onclick="buttonAlter(2, 1)" name="add1" value="+"/>
     <input type="submit" name="product1" value="Add"/>
    <br />
     <input type="button" onclick="buttonAlter(3, -1)" name="subtract1" value="-"/>
     <input type="text" size="4" id="qty3" name="quantity1" value="0"/>
     <input type="button" onclick="buttonAlter(3, 1)" name="add1" value="+"/>
     <input type="submit" name="product1" value="Add"/>
</form>