有没有一种方法可以读取表单中的所有复选框,并在单独的表单中有一个“提交”按钮


Is there a way read all checkboxes in forms and have one Submit button in a separate form?

这个问题将展示我是一个新手。情况是这样的。这是一场摄影比赛。人们上传一张照片,同一行右边有一个复选框。如果选民喜欢这张照片,请勾选复选框。他们最多可以选择5张照片。

简单地说,我的问题不是MySQL,而是表单。每一行都有一个复选框,这是一个表单。SUBMIT按钮就是问题所在。我唯一能弄清楚提交工作的方法是在每个复选框上放一个提交按钮。当然,这太荒谬了。我想要的是阅读所有复选框,并在投票结束时有一个提交按钮。花了几个小时在这上面,却看不到如何让投票人点击提交文件,并一次性将所有检查值插入数据库。

有什么想法吗?我知道这听起来很原始,但只是进入了这个阶段。

提前感谢的任何帮助

您可以将所有复选框包含在一个html表单标记中,并在其中包含提交按钮。它将自动提交所有复选框中的数据

您可以使用javascript/jQuery来运行所有复选框。并提交表格。

好吧,有各种javascript方法可以获取您想要的数据并提交,但让我们保持简单。

[voteform.html]
<form action="process_script.php">
    <img src="image1"><input type="checkbox" name="vote_for_image[]" value="1">
    <img src="image2"><input type="checkbox" name="vote_for_image[]" value="2">
    <input type="submit">
</form>

然后(请注意[RETURN ERROR…]和[DATABASE…]块只是用于填充代码的占位符)

[process_script.php]
<?
    if (count($_GET['vote_for_image'] > 5) {
        [RETURN ERROR 'Please select no more than 5 images to vote for']
    }
    else {
        foreach ($_GET['vote_for_image'] as $index => $image_id) {
            [DATABASE INSERT OR UPDATE FOR $image_id]
        }
    }
?>

checkbox[]设置为每个复选框的名称属性,在提交时,您可以将有效性寻址为数组

  <body>
     <form action="checkbox.php" method="post">
     <input type="checkbox" name="checkbox[]" value="a">
     <input type="checkbox" name="checkbox[]" value="b">
      <input type="checkbox" name="checkbox[]" value="c">
      <input type="checkbox" name="checkbox[]" value="d">
      <input type="submit" name="Submit" value="Submit">
    </form>  
    <?php
      if(isset($_POST['Submit']))
     {
       echo $_POST['checkbox'];
      }
   ?>
</body>

以上会给你

 Array ( 
   [0] => a 
   [1]=>b
   [2] => c 
   [3]=>d 
  ) 

试试这个代码//HTML

<form method='post'>
  <input type='checkbox' name='photo[]' value='1' />
  <img src='test1.jpg' />
  <input type='checkbox' name='photo[]' value='2'/>
  <img src='test2.jpg' />
<input type='submit' value="Submit" name="submit" />
</form>

//PHP

 if(isset($_POST['submit']))
{
    if(isset($_POST['photo']))
    {
        if(count($_POST['photo']) > 5)
        {
           // Display error msg
        }
        else
        {
       // Contains all ids voted on
          $img_ids=explode(',',$_POST['photo']);
       // insert or update DB for the image ids
        }
    }
}