【问题标题】:How to pass multiple checkbox values to php [duplicate]如何将多个复选框值传递给php [重复]
【发布时间】: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。我自己在那里提交了一个答案,但是您可以查看同一个问题中的其他答案。它会/应该给你一个关于如何去做的好主意。
  • 这个问答真的很有启发性,即使是快速阅读。我会专注于它,再次感谢。

标签: php html post dom checkbox


【解决方案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;
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 2013-01-02
    • 2014-12-29
    • 2020-06-24
    • 1970-01-01
    相关资源
    最近更新 更多