我尽力而为,最后想到这里问:
我有一个复选框,可以检查多个值,在我的php中我试图在这样的变量中获取这些值:
realloc
问题1.它回显了所选的最后一个值,而不是所选的多个值。
在我的html电子邮件模板中,我有:
if(!empty($_POST['procedure'])) {
foreach($_POST['procedure'] as $procedure) {
$proc = implode(",", (array)$procedure);
}
echo $proc;
}
问题2.它没有回应任何值。
对于问题1的解决方案,我尝试了以下代码:
<strong>Which procedure(s) are you inquiring about?</strong>
<p><?php echo $proc; ?></p>
打印出值,不带逗号但在电子邮件中仍为空值。
此外,由于我通过电子邮件发送这些值来回显结果没有意义,我只是为了测试目的而尝试。
按要求输出$ proc:
if(!empty($_POST['procedure'])) {
foreach($_POST['procedure'] as $procedure) {
echo $proc;
}
}
这些是复选框的值,echo $ proc正在正确捕捉它们。
更新:邮件功能代码。
Vertical Horizontal Flat
我的情况怎么样?
更新:这是替换html电子邮件的每个发布值的代码。
$user_email = addslashes($_POST['email']);
$filter_values = 'form, submit-btn';
$errors = '<p class="alert alert-success">Your message has been successfully sent !</p>';
$options = array(
'from_email' => '',
'from_name' => 'form', // optional
'reply_to' => 'test@test.com', // optional
'adress' => 'my@gmail.com',
'subject' => 'contact',
'attachments' => 'img/wallacegromit.jpg', // optional
'filter_values' => 'form, submit-btn',
'html_template' => '../forms/mailer/email-templates/contact-email.html', // optional
'css_template' => '../forms/mailer/email-templates/contact-email.css', // optional
'sent_message' => '<p class="alert alert-success">Your message has been successfully sent !</p>', // optional
'display_errors' => true // optional, default false
);
$sent_message = Form::sendAdvancedMail($options);
<strong>Which procedure(s) are you inquiring about?</strong>
<p>{proc} </p>
答案 0 :(得分:0)
这句话 $ proc = implode(&#34;,&#34;,(array)$ procedure);
看起来不会在每次迭代中累积值。 所以它可能是:
$proc = "";
if(!empty($_POST['procedure'])) {
foreach($_POST['procedure'] as $procedure) {
//accumulate with '.=' operator
$proc .= implode(",", (array)$procedure);
}
echo $proc;
(抱歉,我无法添加评论,只有回复)
答案 1 :(得分:0)
echo $proc
将仅输出数组的最后一个元素。 $ proc的值将被替换。
$proc = "";
if(!empty($_POST['procedure'])) {
foreach($_POST['procedure'] as $procedure) {
$proc = implode(",", (array)$procedure);
}
echo $proc;
要解决此问题,您必须使用运算符'。''
新代码:
$proc = "";
if(!empty($_POST['procedure'])) {
foreach($_POST['procedure'] as $procedure) {
$proc .= implode(",", (array)$procedure);
}
echo $proc;
要在你的php中获取$ proc,你应该使用占位符。所以改变
<strong>Which procedure(s) are you inquiring about?</strong>
<p><?php echo $proc; ?></p>
到
<strong>Which procedure(s) are you inquiring about?</strong>
<p>{{proc}}</p>
在PHP脚本中使用以下代码
$gethtml = file_get_contents('../forms/mailer/email-templates/contact');
$gethtml = str_replace('{{proc}}', $proc, $gethtml);
//发送邮件 使用
'html_template' => $gethtml,
或使用PHPmailer
的属性'body'body = $gethtml;