如何使用表单发布方法中的一个复选框

时间:2015-01-16 21:58:52

标签: php forms post

我有10个表单,其中$ _POST ['submit']具有个别设置 每个表格都带有

<form action="" method="POST">

结束
</form>

每个表单都有提交按钮 在所有10个表格之后我有一个checbox值为0和1的if状态,我可以将它用于所有10个表单吗?因为现在告诉我:注意:未定义的索引

已编辑:

if (isset($_POST['submit'])) {
$upgrade = security($_POST['upgrd']);
$amount = security($_POST['amount']);
if (security($_POST['cdn']) == 1) {
$money = $row['bank'] + $row['money'];
    } else {
$money = $row['money'];
}

这是POST提交的一部分

并且表单的代码是:

<?php
if (get_user_stopv($urow['id']) == 0) {
echo '
      <tr>
        <form action="" method="POST">
<td style="text-align:center;">Something here</td>
<td style="text-align:center;">' . $amount . '</td>
<td style="text-align:center;">7</td>
<td style="text-align:center;">
        <input type="hidden" name="upgrd" value="stopvote">
        <input type="hidden" name="amount" value="' . $amount3 . '">
        <input type="submit" name="submit" class="btn-default" value="submit">
</td>
</tr>
</form>';
}
?>

所有形式都是这样的例子......在所有形式的最后我都有:

        <form action="" method="POST">
<?php
if (get_user_card($urow['id']) == 1) {
echo '
        <label class="pull-right">something here !&nbsp;&nbsp;&nbsp;&nbsp;';
        }
        echo '<input type="checkbox" name="cdn" class="hidden" value="0" checked>
<input type="checkbox" name="cdn" value="1"></label>
<br /><br />';
?>
</form>

2 个答案:

答案 0 :(得分:0)

首先,通知。 如果未选中复选框,则其值不会出现。 你在$ _POST中找不到它。 您必须执行以下操作之一才能选中要检查的复选框:

  1. if(isset($_POST['cdn']))

  2. 在复选框之前设置<input type="hidden" name="cdn" value="0"> 。这样,如果没有选中复选框,则会出现零。如果选中它 - 它将被&#34; 1&#34;覆盖。


  3. 至于你的问题:

    您的代码无法清除,但您的网页上似乎有多个<form>元素。提交表单时 - 只提交一个表单,而不是页面上的所有表单。一种特殊的形式。单击了提交按钮的那个。

    如果您的网页上还有一些<form>...</form>块,则会完全忽略它们。

答案 1 :(得分:0)

您想通过一个提交按钮发送多个表单的值,对吗?

我建议按以下方式进行:

该方法基于jQuery的表单序列化功能和事件绑定。您需要的是一个功能,当您按下提交按钮时,该功能会遍历所有表单,获取其值并发送它们。

您可以在HTML中使用客户端的jQuery。 jQuery提供了一个表单序列化方法serialize()。

如果您在包含多个表单的页面上运行$('form').serialize(),则所有表单都会序列化为一个字符串。您可以使用其选择器将其更改为仅包含某些表单,如$('#form1, #form2').serialize()

编写一个函数来聚合表单值并通过ajax发送它们:

    function sendFormValues() {

        // fetch form data and serialize it
        // this is where the magic happens :)
        var data = $('form').serialize();

        // show the serialized form data in the browser's console
        console.log(data);

        // jquery ajax POST 
        $.ajax({
            type: "POST",
            url: "script.php",
            data: data,
        });
    }

现在您绑定事件&#34;单击提交按钮&#34;到函数&#34; sendFormValues&#34;。

$(document).ready(function() {
    $("#buttonSubmit").click(function(){
        sendFormValues();
    }); 
});

那就是它! 当按下提交按钮时,所有表单的值都通过ajax发送。

请正确命名输入字段以避免名称冲突。