如何在单个HTML表单中提交多个值?

时间:2017-04-07 00:21:24

标签: html forms

所以我有一个HTML表单:

<html>
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://myserver.com" method="POST">
      <input type="hidden" name="Id" value="83" />
      <input type="hidden" name="url" value="http://example.com/" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      document.forms[0].submit();
    </script>
  </body>
</html>

正如您所看到的那样,提交<input type="hidden" name="Id" value="83" />的操作意味着它已经提交了与ID号83相关联的属性,我想要为多个ID值提交操作,即1 - 100.这可能吗?如果是这样,怎么办呢?

3 个答案:

答案 0 :(得分:5)

我假设您想要做这样的事情

<html>
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://myserver.com" method="POST">
      <input type="hidden" name="Id[]" value="83" />
      <input type="hidden" name="Id[]" value="85" />
      <!-- you can add as many as input here for id if you want -->
      <input type="hidden" name="url" value="http://example.com/" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      document.forms[0].submit();
    </script>
  </body>
</html>

发布此表单后,在服务器端,您可以将$ _POST ['id']作为数组获取并使用它。

答案 1 :(得分:2)

将[]添加到输入名称:

<input type="hidden" name="ID[1]" value="83" />
<input type="hidden" name="ID[100]" value="100" />

然后在php

  print_r($_POST['ID']); //print out the data array

或者只使用逗号分隔值的一个输入?

  <input type="hidden" name=Id value="1, 2, 3,.., 100" /> 

PHP:

$ids = explode(" ", $_POST['ID']);

答案 2 :(得分:1)

通过执行document.forms[0].submit();,您将提交该表单中的所有输入值,并且值将保存为Id=83&url=http://example.com/

如果您想提交多个表格,那么您可以使用for循环

x = document.forms.length //your desired number or number of forms
for(i = 0; i<x; i++){
    document.forms[i].submit();
}