目前我有一个 HTML 表单,它收集有关某些文件的一些元数据,以及每个用户填写一些字段的信息。我想注册一些关于数据的关键字。我可以要求他们在普通文本框中手写关键字,但我更希望有一个大约 10/15 值的复选框列表。
然后我需要仅将检查的值传递到 PHP 文件,使用 $_POST
。我的问题是我将一个变量分配给这些值,然后在 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
,但用逗号分隔。其余的我可以使用有关此类问题的其他问题来理解和编写。
预先感谢您提供的所有帮助。
最佳答案
您的 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,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59361213/