2016-03-10 2 views
0

Я создал систему заказа, которая теперь идет из формы продукта на страницу обзора. У меня есть страница, настроенная для использования петель PHP, чтобы показать, какие продукты они выбрали из предыдущей страницы, и она отлично работает. Теперь мне нужно иметь кнопку «Заказ», которая отправляет по электронной почте заказ. Я занимаюсь написанием меньше кода, мне бы не пришлось писать весь код, чтобы отправить эту форму на другую форму php. Есть ли способ иметь заголовки электронной почты на этой странице и сбрасывать сгенерированный html в тело отправленного письма?php email current page

Вот как я петлю содержимое формы с предыдущей страницы. В основном это идет, хотя все продукты и, если они там, показывают их в обзоре. Если нет, не делайте этого.

for ($i=0; $i<8; $i++) { 

     if (!empty($_REQUEST['driver'][$i]['select'])) { 

      //add the club to the total of clubs 
      $club = $_REQUEST['driver'][$i]['select']; 
      array_push($club_total, $club); 

      //add the price to the cost 
      list($shaft, $price) = explode(":", $_REQUEST['driver'][$i]['shaft']); 
      array_push($cost, $price); 

      //show the user 
      echo '<h3>' .$_POST['driver'][$i]['name']. ' - $'. money_format('%i', $price).'</h3>'; 
      echo '<ul>'; 
       if (!empty($_REQUEST['driver'][$i]['left'])) { 
        echo '<li><strong>Left Handed</strong></li>'; 
       } 
       echo '<li>Length: '.$_POST['driver'][$i]['length']. '"</li>'; 
       echo '<li>Shaft: '.$shaft. '</li>'; 
       if (!empty($_REQUEST['driver'][$i]['hossel'])) { 
        echo '<li>Purist Hossel: ' .$_POST['driver'][$i]['hossel'].'</li>'; 
       } 
       if (!empty($_REQUEST['driver'][$i]['color'])) { 
        echo '<li>Purist Color: ' .$_POST['driver'][$i]['color'].'</li>'; 
       } 
      echo '</ul>'; 
     } 
+0

Вместо эха вы можете сохранить все html в переменной, а затем повторить его для страницы, а также использовать ее в качестве тела электронной почты. –

ответ

1

Вы можете захватить свой html в выходном буфере, а затем сохранить его в переменной для последующего использования (например, вставьте его в тело письма).

ob_start(); 
for ($i=0; $i<8; $i++) { 
    // ... your code 
} 
$my_html = ob_get_contents(); 
ob_end_clean(); 

затем положить $my_html в качестве почтового тела и отправить его вместе.

Идея помещения всех в переменную в первый раз также работает, но это может сэкономить вам некоторое время на переписывание всего.

+0

Как бы я мог вызвать функцию почты без формы? Когда я обертываю все в форме, ob_get_contents имеет только html не петли php. Если у меня просто есть функция почты в теле, она отлично работает, но сразу же отправляет обзор (никаких действий со стороны пользователя). – Packy

+0

Я не совсем уверен, что вы имеете в виду, но вы выполнили бы только функцию почты после того, как убедитесь, что форма была отправлена. – dgig

+0

Извините, я понял. Это было идеальным решением. Я просто сохранил ob_get в сеансе и вызвал функцию ajax на mail.php с функцией почты и сеансом там. – Packy

0

Вместо вторя из HTML-, создать строку, так что $ вне. = «Ваш HTML» и т.д., то вы можете легко установить, что кусок HTML в теле функции электронной почты.

Я предполагаю, что вы знаете, как это кодировать, иначе я добавлю для вас пример кода.