如何处理表单中的两个提交按钮?

时间:2011-11-28 18:00:52

标签: php html php-5.3 shopping-cart

我不明白这一点,

如果我执行此操作并点击结帐按钮,该页面将不会转到结帐页面

<form action="cart.php" method="post" id="form-cart">
<button name="update" id="update" type="submit" value="Update cart">Update cart</button>
<button name="checkout" id="checkout" type="submit" value="Check out">Check out</button>
</form>

仅当我将name="checkout"更改为name="cart-checkout"

时才会这样做
<form action="cart.php" method="post" id="form-cart">
<button name="update" id="update" type="submit" value="Update cart">Update cart</button>
<button name="cart-checkout" id="checkout" type="submit" value="Check out">Check out</button>
</form>

它是这样的,但对我没有任何意义,你知道它为什么这样做吗?

所以我尝试在<a>标记内使用<button>标记,然后转到结帐页面,

<form action="cart.php" method="post" id="form-cart">
<button name="update" id="update" type="submit" value="Update cart">Update cart</button>
<button name="checkout" id="checkout" type="submit" value="Check out"><a href="checkout.php">Check out</a></button>
</form>

但将<a>标记放在<button>标记内是否有效的html

3 个答案:

答案 0 :(得分:2)

为什么不将按钮更改为:

<input name="update" id="update" type="submit" value="Update cart">
<input name="cart-checkout" id="checkout" type="submit" value="Check out">

然后在PHP(在cart.php上)你可以这样做:

<?php
  if($_POST){
     if(isset($_POST['update']){
       // process update
     } else if(isset($_POST['cart-checkout']){
       // process cart checkout
       // or uncomment the below line to forward to checkout.php
       // header("Location: checkout.php");
     }
  }
?>

答案 1 :(得分:0)

如果让<button>只是<a href="">

,那该怎么办?

-edit -

哎呀,对不起,误读了。 <button onclick="window.location='/nextpage';">

答案 2 :(得分:0)

我实际上会在这里使用带有onclick事件的JavaScript,这会将您带到结帐页面。