我认为我在这里尝试做的事情显而易见。
$ message是来自wp_mail()的消息参数。
我需要这个foreach循环在我的电子邮件中运行,以从表单中获取所有动态值。
$tmp = '';
$i = 0;
foreach( $_POST as $key => $value) {
if( substr( $key, 0, 14) == 'course-select-') {
$tmp = '<tr><td>Day number' . $i . ' :</td><td> ' . $value . '</td></tr>';
}
$i++;
};
//construct the email
$message = '
<html>
<head>
<title>Booking Confirmation Part 2</title>
</head>
<body>
<h2>Booking Confirmation Part 2 : ' . $golfersname . '</h2>
<table width="500">
<tr>
<td>Accomodation</td>
<td>' . $accomodation . '</td>
</tr>
<tr>
<td>Singles</td>
<td>' . $singles . '</td>
</tr>
<tr>
<td>Doubles</td>
<td>' . $doubles . '</td>
</tr>
<tr>
<td>Car Type</td>
<td>' . $cartype . '</td>
</tr>
<tr>
<td>Course Details</td>
</tr>
' . $tmp . '
</table>
</body>
</html>
';
从碰到'. $i = 0;
的那一刻起,一切都会破裂。我错过了什么真正愚蠢的事情?
foreach确实有效,因为我已经在我的控制台中测试了它。
由于
答案 0 :(得分:0)
“”。用于在PHP中构建STRINGS。看来你正试图在你的字符串中途执行代码(即循环和$ i的赋值)。这根本没有意义。
最好的方法是:
$message = "<HTML>....Course details";
$i = 0;
foreach( $_POST as $key => $value)
{
if( substr( $key, 0, 14) == 'course-select-')
{
$message=$message.'Day number' . $i . ' : ' . $value;
}
$i++;
}
$message=$message."</TD>...</HTML>";
然后填写您的电子邮件脚本。
修改强>
是的,您现在已经解决了第一个问题。它只显示第一个结果的原因是因为你在循环中重新分配$ tmp。见下文:
$tmp = '<tr><td>...'
应该是
$tmp = $tmp.'<tr><td>...'
答案 1 :(得分:0)
在这种情况下你可以结合使用。和=来制作。=
当你循环你的foreach变化时
$tmp = '<tr><td>Day number'.....
到
$tmp .= '<tr><td>Day number' ....
这会将每个新循环的字符串添加到字符串中。
答案 2 :(得分:0)
像这样使用:
.find({ sharename: 'qwerty' }})