Tan*_*uta 2 php forms arrays post
我是 PHP 新手,正在寻找以下方面的帮助:
我有一个包含各种输入、选择和文本区域的大型 HTML 表单。在提交时,我将所有字段值传递到另一个 PHP 页面以创建一封电子邮件。
这适用于文本输入、单选按钮、选择、文本区域等,但不适用于复选框。
在表单中,我有多个复选框,它们都使用相同的名称,如下所示:
<input type='checkbox' class='someClass' id='language1' name='language[]' value='de - German' />
<input type='checkbox' class='someClass' id='language2' name='language[]' value='en - English' />
<input type='checkbox' class='someClass' id='language3' name='language[]' value='fr - French' />
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)
在 PHP 方面,我尝试了以下操作,但是如果我将其$languages用于电子邮件正文,则它显示为空白(而所有其他字段均正确显示):
$languages = implode(',', $_POST['language[]']);
Run Code Online (Sandbox Code Playgroud)
我想要做的是将$_POST["language"]数组中的所有值保存在一个变量中,用逗号分隔(最后没有逗号)。
有人可以帮我弄这个吗 ?
提前谢谢了
如果anyname[]在表单中使用,PHP 会将其转换为数组,但[]名称中不包含。所以这应该有效:
$languages = implode(',', $_POST['language']);
Run Code Online (Sandbox Code Playgroud)
请注意,未选中的复选框不会发布,因此如果您选中 none,则不会发布任何值并且$_POST['language']不会设置。你必须检查一下。
$languages = 'No languages selected';
if (isset($_POST['language'])){
$languages = implode(',', $_POST['language']);
}
Run Code Online (Sandbox Code Playgroud)