[英]Only 1 Jquery UI Multiselect value being sent through PHPmailer
我正在处理的联系表格未正确发布我的多项选择答案。 我正在使用 PHPMailer-FE 发送表单结果。 PHPMailer-FE 包含一个 php 类文件、配置脚本和 TPL 文件。
我在使用 Ryan Cramer 的 jquery.amselect.js 小部件时遇到问题,其中在电子邮件中发送的是“Array”一词,而不是逗号分隔的选定值列表。
下面是 amselect 小部件的示例: http ://www.ryancramer.com/projects/asmselect/examples/example1.html。
这是 HTML:
<select style="width: 200px !important;" id="cards" name="cards[]" multiple="multiple" title="Choose All That Apply" >
<option value="Visa">Visa</option>
<option value="Mastercard">Mastercard</option>
<option value="Amex">American Express</option>
<option value="Discover">Discover</option>
<option value="Diners">Diner's Club</option>
<option value="JCB">JCB</option>
<option value="Visa-Delta">Visa Debit/Delta</option>
<option value="Switch-Maestro">Switch/Maestro</option>
<option value="solo">solo</option>
<option value="Visa-Electron">Visa Electron</option>
</select>
感谢@aSeptik,我现在明白要解决我们可以使用内爆标签的问题。 在他的工作演示中,php 包含在 HTML 文件的顶部:
$message .= implode(', ',$_POST['cards']);
我曾尝试在我的 TPL 或类文件中使用 implode 标记,但没有成功。
任何帮助将不胜感激我正在努力解决这个问题。 非常感谢! 问候, 诺兰
通常这是由错误地命名您的输入引起的。 我以前没有使用过多选,但我建议你的输入标签需要看起来像这样:
<input type="checkbox" name="myBox[]" />
<input type="checkbox" name="myBox[]" />
<input type="checkbox" name="myBox[]" />
等等...
请注意,您需要在 name 属性中为数组表示法添加方括号。 如果您这样做,PHP 会将变量显示为数组。
在你的情况下(现在你已经添加了一个例子)你只需要让你的选择标签在最后有数组运算符:
<select class="mydrop" name="cards-accepted[]" multiple="multiple" size="5">
</select>
更新: (PHPMailer-FE + amselect 示例)
我查看了您说您正在使用的插件,现在我知道问题出在哪里了……它有问题。
它生成的输入不适合发布到服务器,因为它们都具有相同的名称。 PHP 无法区分具有相同名称的输入(除非它们包含括号符号 - [] - 那么它们被视为数组)
我在这里模拟了一个小演示:
使用类似 firebug 的工具检查复选框,您会看到它们都具有相同的名称。
如果我在你那里我会使用 JQuery 来重命名你的插件创建的 chekboxes,如下所示:
见: http : //jsbin.com/upuhe/2/edit
$("select").multiselect()
.each(function(){
var selectEl = $(this);
var selectElName = selectEl.attr("name")
selectEl.multiselect("widget")
.find("input[type=checkbox]")
.attr({ name: selectElName });
})
这假设您将选择设置为<select name='select[]' multiple='multiple'>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.