如何将多个复选框值传递给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 电子邮件生成器?

如何使用 PHP 将复选框的值传递给 mySQL 数据库?

将复选框值传递给 javascript 和 PHP 邮件

在 MVC/Razor 中,如何获取多个复选框的值并将它们全部传递给控制器​​?

使用 AJAX 将复选框值 1 如果选中,如果不是 0 传递给 PHP

如何通过 PHP 将多个单选按钮值作为所有单独的值传递给 MYSQL 数据库,但将它们分成组?