更新数量echo ahref

时间:2012-02-24 16:08:22

标签: php

我正在尝试为我的购物车系统创建整数更新表单字段。在页面上,我已经有一个+和 - 函数来增加和减少数量1.我怎么能在(+)和( - )旁边包含一个整数形式字段到某个结果的udpate然后发送到购物车页面。非常感谢您的帮助。

这是PHP中包含的代码的主要部分(我在第一个href链接之前省略了信息,因为它并不重要)

<a href="cart.php?increase=<?php echo $num; ?>"> (+) </a>
<a href="cart.php?remove=<?php echo $num; ?>"> (-) </a>

4 个答案:

答案 0 :(得分:2)

我不太确定我的问题是否正确,但我认为您想要更改图表中的输入字段。

我认为您应该使用JavaScript而不是PHP解决该问题,因为您必须在每次点击时重新加载页面。

jQuery中它会是这样的:

$(".increase").each(function() {
    $(this).click(function() {
        var ipt = $("#" + $(this).attr("data-what"));
        ipt.val(parseInt(ipt.val()) + 1);
    });
});

$(".decrease").each(function() {
    $(this).click(function() {
        var ipt = $("#" + $(this).attr("data-what"));
        ipt.val(parseInt(ipt.val()) - 1);

        if(parseInt(ipt.val()) < 0) {
            ipt.val(0);
        }
    });
});

和html是:

<div class="item">Item 1 <input type="text" id="item1" value="1" size="2"> (<a href="#" class="increase" data-what="item1">+1</a> | <a href="#" class="decrease" data-what="item1">-1</a>)</div>
<div class="item">Item 2 <input type="text" id="item2" value="1" size="2"> (<a href="#" class="increase" data-what="item2">+1</a> | <a href="#" class="decrease" data-what="item2">-1</a>)</div>
<div class="item">Item 3 <input type="text" id="item3" value="1" size="2"> (<a href="#" class="increase" data-what="item3">+1</a> | <a href="#" class="decrease" data-what="item3">-1</a>)</div>

请参阅http://jsfiddle.net/axYfq/4/

并使用提交按钮获得正确的数量:)

答案 1 :(得分:1)

您必须将表单发布到cart.php

<form action="cart.php" method="post">
    <input type="text" name="qty"/>
    <input type="submit" name="submit_increase" value="(+)"/>
</form>
<form action="cart.php" method="post">
    <input type="text" name="qty"/>
    <input type="submit" name="submit_remove" value="(-)"/>
</form>

在您的cart.php中,您可以使用if (isset($_POST['submit_increase']))来确定您是增加还是减少,然后$_POST['qty']来获取要添加/删除的项目数。

这不是唯一的解决方案。您可以使用一个表单,隐藏的输入或javascript来构建查询字符串。由你决定。

答案 2 :(得分:1)

您可以使用javascript getelementbyID执行此操作。

首先,您需要一个具有适当ID的表单字段:

<input type="text" name="quantity" id="NumberOfItems" />

然后在(+)和( - )周围放一个span来调用JS函数:

<span onclick="IncrementNumber()">(+)</span>
<span onclick="DecrementNumber()">(-)</span>

然后,您可以使用getelementbyID在单击按钮时更改值:

function IncrementNumber()
{
document.getElementById("NumberOfItems").value-=-1; // Messy, but works
}

function DecrementNumber()
{
document.getElementById("NumberOfItems").value-=1;
}

答案 3 :(得分:1)

我相信你需要在这里使用表格。尝试做:

<form action="#" method="POST">
    <input type="hidden" name="user_action" value="increase">
    <input type="submit" value="increase">
</form>
<form action="#" method="POST">
    <input type="hidden" name="user_action" value="decrease">
    <input type="submit" value="decrease">
</form>

这样您将输出两个按钮,当用户点击每个按钮时,您将从$ _POST变量中获取操作。那么你可以这样做:

<?php
if(isset($_POST['increase'])){
$number_of_items += 1;
}
if(isset($_POST['decrease'])){
$number_of_items -= 1;
}
?>
<p>You have ordered <?php echo $number_of_items; ?> items</p>