Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
帮助使用PHP和HTML电子邮件语法_Php_Html Email - Fatal编程技术网

帮助使用PHP和HTML电子邮件语法

帮助使用PHP和HTML电子邮件语法,php,html-email,Php,Html Email,我想很明显我在这里想做什么 $message是来自wp_mail()的消息参数 我需要在我的电子邮件中运行这个foreach循环,以从表单中获取所有动态值 $tmp = ''; $i = 0; foreach( $_POST as $key => $value) { if( substr( $key, 0, 14) == 'course-select-') { $tmp = '<t

我想很明显我在这里想做什么

$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>
    '; 
$tmp='';
$i=0;
foreach($\发布为$key=>$value){
如果(substr($key,0,14)=“课程选择-”){
$tmp='daynumber'.$i'.:'.$value';
}
$i++;
};
//构建电子邮件
$message='1
预订确认第2部分
订票确认书第二部分:‘$戈尔弗斯纳姆。”
住宿
' . $住宿。”
单打
' . $单打。”
双打
' . $双打。”
车型
' . $卡类型。”
课程详情
' . $tmp'
'; 
从它点击
”的那一刻起,一切都中断了$i=0。我错过了什么真正愚蠢的事情

foreach确实可以工作,因为我已经在控制台中对它进行了测试

谢谢

“”用于在PHP中构建字符串。似乎您正试图在字符串的中间执行代码(即循环和对$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>";
$message=“…课程详细信息”;
$i=0;
foreach($\u POST as$key=>$value)
{
如果(substr($key,0,14)=“课程选择-”)
{
$message=$message.“日数”。$i.:'。$value;
}
$i++;
}
$message=$message.“…”;
然后完成你的电子邮件脚本

编辑

是的,您现在已经解决了第一个问题。它只显示第一个结果的原因是因为您正在循环中重新分配$tmp。见下文:

$tmp = '<tr><td>...'
$tmp='…'
应该是

$tmp = $tmp.'<tr><td>...'
$tmp=$tmp.'..'

在php中,您可以组合赋值运算符()

在这种情况下,您可以合并。和=制造

当你在循环你的foreach零钱时

$tmp = '<tr><td>Day number'.....
$tmp='daynumber'。。。。。

$tmp.='天数'。。。。
这将把每个新循环上的字符串添加到字符串中

像这样使用:

$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++;
};
$tmp='';
$i=0;
foreach($\发布为$key=>$value){
如果(substr($key,0,14)=“课程选择-”){
$tmp.='Day number'.$i.':'.$value.';
}
$i++;
};

串联字符串时使用循环是没有用的。我发现了这一点。虽然我已经成功了,但它只打印第一次迭代。因为每次迭代都会覆盖
$tmp
。附加到它。你没有连接。每次你都会用一个新的值来破坏$tmp。
$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++;
};