如何将多个复选框值传递给php [重复]
Posted
技术标签:
【中文标题】如何将多个复选框值传递给php [重复]【英文标题】:How to pass multiple checkbox values to php [duplicate] 【发布时间】:2020-04-09 04:29:54 【问题描述】:目前我有一个 html 表单,它收集有关某些文件的一些元数据,以及每个用户填写一些字段。我想注册一些关于数据的关键字。我可以要求他们在普通文本框中手写关键字,但我更希望有一个大约 10/15 值的复选框列表。
然后我只需要使用$_POST
将检查的值传递给php 文件。我的问题是我为这些值分配了一个变量,然后我在 DOM 事件中调用了该变量。我正在生成一个 XML 文件,目前我已经准备好在文本输入中注册这些关键字的 HTML。通过阅读此处的其他问题,我了解如何创建复选框并将它们作为数组传递给 PHP。但我不明白如何将此数组传递给$dom->createElement
情况,最好用逗号分隔。
PHP
//Pull data from HTML form
$keywordsString = $_POST['keywords'];
// Creates xml document
$dom = new DOMDocument();
$dom->encoding = 'utf-8';
$dom->xmlVersion = '1.0';
$dom->formatOutput = true;
$xmlFileName = 'example_example.xml';
// Adds metadata to xml
$metadata = $dom->createElement('MD_Metadata');
$idInfo = $dom->createElement('identificationInfo');
$descriptiveKeywords = $dom->createElement('descriptiveKeywords');
$CharacterString = $dom->createElement('CharacterString', $keywordsString);
$descriptiveKeywords->appendChild($CharacterString);
$idInfo->appendChild($descriptiveKeywords);
$metadata->appendChild($idInfo);
$dom->appendChild($metadata);
$dom->save($xmlFileName);
我不知道如何将复选框值传递给 $keywordsString
,但用逗号分隔。其余的我可以理解和写,使用关于这类问题的其他问题。
提前感谢您提供的所有帮助。
【问题讨论】:
您需要使用foreach
,并且输入需要能够接受多个数组,即:[]
。
谢谢。 foreach
有点令人困惑,但我会更加关注它。多个阵列在我的脑海中,但不确定如何进行。
欢迎。在 Stack Overflow 上查看this Q&A。我自己在那里提交了一个答案,但是您可以查看同一个问题中的其他答案。它会/应该给你一个关于如何去做的好主意。
这个问答真的很有启发性,即使是快速阅读。我会专注于它,再次感谢。
【参考方案1】:
您的 html 应如下所示:
<form action="" method="post">
<input name="choice[]" type="checkbox" value="1" />
<input name="choice[]" type="checkbox" value="2" />
<input name="choice[]" type="checkbox" value="3" />
<input name="choice[]" type="checkbox" value="4" />
<input type="submit" value="order" />
</form>
在 PHP 中,您可以使用 foreach
循环进行迭代。将以下代码放在 html 表单的顶部:
基础的一个小说明,通过post方式发布数据时,需要应用Post redirect get设计模式来防止表单重新提交。
如果您发送的数据不敏感,您可以通过get请求来完成。
<?php
if($_POST):
foreach($_POST['choice'] as $val)
echo $val . "<br>";
endif;
?>
【讨论】:
以上是关于如何将多个复选框值传递给php [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将一组选中/未选中的复选框值传递给 PHP 电子邮件生成器?
在 MVC/Razor 中,如何获取多个复选框的值并将它们全部传递给控制器?