我有一个允许人们输入关键字的表格。
我希望人们能够一次添加一个关键字,而对于他们之前添加的所有关键字,它们都是表单上的隐藏输入。
这是我当前的代码:
<form method="post" class="domain-form">
<div class="domain-wrapper">
<input type="text" name="keyword" id="keyword" class="domain-input" autocapitalize="none" autocorrect="off" spellcheck="false" aria-required="true" aria-invalid="false" placeholder="Type a keyword here...">
</div>
<button type="submit" class="button-link button-black getstarted" style="border-top-left-radius:0;border-bottom-left-radius:0;"><span>Add Keyword</span></button>
<input type="hidden" id="domain" name="domain" value="<?php echo $domain; ?>">
<?php
if (isset($_POST['keyword'])) {
foreach($_POST['keyword'] as $inputkeyword) {
echo "<input type=\"hidden\" id=\"keyword\" name=\"keyword\" value=\"$inputkeyword\">";
}
}
?>
</form>
我在显示Invalid argument supplied for foreach()
时出错。
我在做什么错?
您需要修改name
结构。名称必须带有[]
才能创建数组。
name="keyword[]"
否则它是一个普通输入,并且重复项被覆盖。
这可以在这里的文档https://www.php.net/manual/en/faq.html.php#faq.html.arrays中找到。
首先,您应该以表格形式输入动作属性,按钮的名称属性并在输入类型文本中添加name =“ keyword []”,如下所示,然后尝试
<form method="post" action="" class="domain-form">
<input type="text" name="keyword[]" id="keyword" class="domain-input" autocapitalize="none" autocorrect="off" spellcheck="false" aria-required="true" aria-invalid="false" placeholder="Type a keyword here...">
<button type="submit" name="keyword" class="button-link button-black getstarted" style="border-top-left-radius:0;border-bottom-left-radius:0;"><span>Add Keyword</span></button>
您可以使用javascript实现此目的。只需为该输入添加一个“添加关键字”按钮,然后在您创建该按钮并将其添加到DOM时将其添加到单击监听器上即可。