表单中的多个提交按钮

时间:2011-03-10 01:44:22

标签: php html forms

我有一个购物车,并希望从购物车中删除商品。我不想使用javascript。购物车中的商品通过抓取会话变量在php中循环,并显示在一个表格中,并带有删除项目的选项。目前我有“remvove item”链接的多个输入提交,而在我的for循环中,我有这些输入标签,这些标签是用项目的ID生成的。

<input type="hidden" name="id[]" value="<?php echo $uniqueid; ?>
<input type="submit" name="remove" value="removeitem" class="otherbtns" />

我的问题是在我的脚本中处理post变量无法知道点击了哪个“removeitem”链接,因此删除了第一个。我只是在寻找最好的方法来处理像这样没有JS的东西。

由于

4 个答案:

答案 0 :(得分:3)

你可以制作多个表单,每个表单的action属性值都不同吗?

答案 1 :(得分:2)

使用多种形式。您可以在脚本中拥有任意数量的表单,每个表单提交一个表单。不要采用使用js的路径来提交表单 - &gt;如果你这样做,小猫就会死。

答案 2 :(得分:0)

如果您不介意向用户公开id值,那么快速修复它的方法就是更改每个提交按钮的value属性:

<input type="submit" ... value="removeitem <?php echo $uniqueid ?>" />

然后,当表单发送到服务器时,您可以使用PHP解析并检查该值。根据您的ID的复杂程度,您可以做一些简单的事情:

$value = $_POST['remove'];
$value = explode(' ', $value);
$value = $value[1];

......理论上,这将为您提供所需的身份证。

答案 3 :(得分:0)

您可以通过指向同一页面的简单链接来处理此问题,但是在$ _GET中收集信息并使其通过脚本运行:

<a href="cart.php?remove=yes&item_to_remove=<?php echo item_id; ?>">Remove</a>

然后在php脚本中

if ( (isset($_GET['remove']))and($_GET['remove'] == 'yes') ){
   //then remove the item from the session var by removing the $_GET['item_to_remove']
}