mysql从列表中插入多个提交按钮

时间:2014-09-22 23:07:44

标签: php html mysql

我有一个带有PHP循环和隐藏字段的HTML表格,当用户从列表中选择一个项目并按下提交按钮时,我希望将该项目数据插入到数据库中。问题是当按下按钮时,它总是从列表的最后一行插入相同的数据。

<form id="paymentForm" role="form" action="<?php echo base_url('payment/save'); ?>" method="post">
<?php foreach ($result as $row): ?>
<td><input type="hidden" name="sum" value="<?php echo $row['sum']; ?>" /></td>
<td><input type="hidden" name="total" value="<?php echo $row['total']; ?>" /></td>
<td><a href="#" onclick="document.forms['paymentForm'].submit();">Save</a></td>
<?php endforeach; ?>
</form>

我也使用标准代码进行插入: $ query =“INSERT INTO info(sum,total)VALUES($ sum,$ total)”;

2 个答案:

答案 0 :(得分:0)

当您按下“保存”按钮时,您将完整地提交表单。您选择的信息没有区别。只有sumvalue最后一个将作为标头传递给服务器。意思是,表格的最后一行是唯一一个将被保存的行。

我在JSFiddle中编写了一个示例表单,其中显示了在按下保存按钮时如何让很多行提交单个值。

http://jsfiddle.net/w6nug118/3/

要总结代码,我的表单的工作方式是只使用 sumtotal的一个实例。该按钮会在提交表单之前将这些值更改为data-属性。

答案 1 :(得分:0)

看起来您需要使用多个表单标签并告诉按钮提交(此)表单...或者您可以使用Ajax仅发布单击按钮上方的两个输入。这些方面的东西:

<?php $counter = 1; ?>
<?php foreach ($result as $row): ?>
    <td>
        <form id="paymentForm<?=$counter;?>" role="form" action="<?php echo base_url('payment/save'); ?>" method="post">
        <input type="hidden" name="sum" value="<?php echo $row['sum']; ?>" />
        <input type="hidden" name="total" value="<?php echo $row['total']; ?>" />
        <a href="#" onclick="document.forms['paymentForm<?=$counter;?>'].submit();">Save</a>
        </form>
    </td>
<?php 
    $counter++;
  endforeach; 

?>