表单字段需要一个数组

Posted

技术标签:

【中文标题】表单字段需要一个数组【英文标题】:form field needs an array 【发布时间】:2014-11-08 06:11:45 【问题描述】:

我会直接进入它。我有一个带有名为“位置”的选择表单元素标记的 html 页面,我编写了一个按钮,以便能够添加另一个选择标记表单字段,以防用户在提交表单时需要指示多个不同的位置。我的问题是我似乎无法添加具有不同name="" 的附加选择表单字段,理想情况下我希望name="location0" 并且当用户再次单击以添加另一个选择表单字段时,它应该是name="location1" 等等...

我用这段代码尝试了 push() 函数:

<button onclick="add_fields()">Try it</button>

<p id="demo"></p>

<script>
var location= ["location"];
document.getElementById("invoice").innerHTML = location;

function add_fields() 
    location.push("+")
    document.getElementById("invoice").innerHTML = location;

</script>

但这也不起作用。我确定这个代码的实现是问题所在。

我在js fiddle 中提供了我的代码,该脚本包含在 html 部分中,仅在 html 部分中有效(奇怪),感谢任何帮助,谢谢。

【问题讨论】:

【参考方案1】:

将“location[]”作为选择名称,然后当您通过 $_POST 接收数据时,这将是一个具有不同值的数组。

如果你放这样的东西,你会看到:

<?php
if ($_SERVER['REQUEST_METHOD']==='POST') 
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    //$locationArray=$_POST['location'];


?>

$_POST['location'] 将是一个数组,其中不同位置的不同值

【讨论】:

我走了一条不同的路,但决定给你点时间来回答这个问题,谢谢【参考方案2】:

这是我需要做的吗?

  if (isset($_REQUEST['location']) && is_array($_REQUEST['location'])) 
  $location = $_REQUEST['location'];

  foreach ($locationas $location) 
    print $location;
  

【讨论】:

以上是关于表单字段需要一个数组的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 从动态输入字段中捕获数组值并通过电子邮件发送它们

如何使用 jquery 创建具有来自动态创建的表单字段的值的多维数组?

使用数组填充 APEX 表单上的文本字段

通过 AJAX 提交表单数组

将所有字段发布为数组的 Codeigniter 表单验证

Element UI Form表单验证