как отправить динамический блок html-кода?

привет, мне интересно, есть ли способ отправить блок html-кода на адрес электронной почты. У меня есть переменная, которая задана во внешнем файле javaScript с именем «sum», и я вызываю эту переменную в своем html-коде, поэтому одна часть html-блока динамически заполняется. Я не могу понять, как отправить по электронной почте этот обычный php-путь, поэтому им просто интересно, могу ли я просто отправить весь блок html-кода на адрес электронной почты.

вот весь блок html-кода, который я бы хотел отправить:

<div class="select-location-page"> <h2>Where should we meet you?</h2> <p class="location-sub-header">Fill out this form and we will meet you within 1 hour!</p> <form action="../mail.php" method="POST" class="location-form"> <div class="device-details"> <h2>Device: iPhone5</h2> <h2>Repair Cost: $<span id="result">0</span></h2> </div> <input name="name" type="text" id="name" placeholder="Name" maxlength="20"> <input name="number" type="text" id="number" placeholder="Number" maxlength="15"> <input name="address" type="text" id="address" placeholder="Address" maxlength="40"> <input name="city" type="text" id="city" placeholder="City" maxlength="20"> <input name="zip" type="text" id="state" placeholder="Zip" maxlength="20"> <input name="device" type="hidden" id="device" value="iPhone5" maxlength="20"> <div class="submit-btn"> <input type="submit" value="Submit Request" /> </div> </form> <script> document.getElementById("result").innerHTML = localStorage.getItem("sum"); </script> </div> 

вот файл php, который я пытался создать, все это работает, за исключением стоимости ремонта (ive попытался объявить переменную php в html-коде, а затем поместить ее в файл mail.php, но это не сработало)

 <?php $name = $_POST['name']; $number = $_POST['number']; $address = $_POST['address']; $city = $_POST['city']; $zip = $_POST['zip']; $device = $_POST['device']; $formcontent=" From: $name \n number: $number \n Address: $address \n City: $city \n Zip $zip \n Device: $device \n Repair Cost: (need this to work)"; $recipient = "joe.t.oconnor@gmail.com"; $subject = "Device Repair Request"; $mailheader = "From: $name \r\n"; mail($recipient, $subject, $formcontent, $mailheader) or die("Error!"); header('Location: thankyou.html'); ?> 

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

(Проконсультируйтесь с моим Редактором ниже)

Вы можете использовать буферизацию вывода для захвата формы и использования полного HTTP-вызова для действия и отправки в виде HTML.

Sidenote: Обязательно измените все экземпляры example.com на ваш адрес сервера.

Пример:

 <?php ob_start(); echo ' <form action="http://www.example.com/mail.php" method="POST" class="location-form"> <div class="device-details"> <h2>Device: iPhone5</h2> <h2>Repair Cost: $<span id="result">0</span></h2> </div> <input name="name" type="text" id="name" placeholder="Name" maxlength="20"> <input name="number" type="text" id="number" placeholder="Number" maxlength="15"> <input name="address" type="text" id="address" placeholder="Address" maxlength="40"> <input name="city" type="text" id="city" placeholder="City" maxlength="20"> <input name="zip" type="text" id="state" placeholder="Zip" maxlength="20"> <input name="device" type="hidden" id="device" value="iPhone5" maxlength="20"> <div class="submit-btn"> <input type="submit" value="Submit Request" /> </div> </form> '; $output = ob_get_contents(); ob_end_clean(); $to = "email@example.com"; $from = "email@example.com"; $subject = "Form submission"; $message = $output; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "From:" . $from; mail($to,$subject,$message,$headers); 

Затем в файле mail.php :

Sidenote: Я оставил некоторые из массивов POST. Вам нужно будет добавить их сами. Это всего лишь пример того, что сработало для меня.

 <?php $first_name = $_POST['name']; // The following is non-existant in your form. You can adjust to your liking. $message = $_POST['message']; $to = "email@example.com"; $from = "email@example.com"; $subject = "Form submission 2"; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "From:" . $from; mail($to,$subject,$message,$headers); 

Примечания:

Возможно, вы не сможете использовать JS, но можете попробовать. Я не использовал его в своем тесте.

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

Рекомендации:


Редактировать:

Вот как это работает (новое, отредактированное). (Вам нужно будет добавить другие ваши POST-массивы в mail.php как описано в комментариях).

Sidenote: см. Комментарии в коде для некоторых дополнительных инструкций. // comment...

  • Пользователь вводит свой адрес электронной почты (взятый из отдельной формы).
  • Если он не пуст, запишите его в массив POST.
  • Если письмо не пустое, запишите все это в выходной буфер.
  • Отправляет форму пользователю.

Новый код:

 <?php echo $form = ' <form action="" method="POST" class="location-form"> <input name="email_from" type="text" id="email_from"> <input type="submit" name="submit" value="Submit Request" /> </form> '; if(!empty($_POST['email_from']) ){ // This outputs a message to the user after entering their email, and submits. echo $from2 = "An email has been sent to: " . $_POST['email_from']; } $var = ' <div class="select-location-page"> <h2>Where should we meet you?</h2> <p class="location-sub-header">Fill out this form and we will meet you within 1 hour!</p> <form action="http://www.example.com/mail.php" method="POST" class="location-form"> <div class="device-details"> <h2>Device: iPhone5</h2> <h2>Repair Cost: $<span id="result">0</span></h2> </div> <input name="name" type="text" id="name" placeholder="Name" maxlength="20"> <input name="number" type="text" id="number" placeholder="Number" maxlength="15"> <input name="address" type="text" id="address" placeholder="Address" maxlength="40"> <input name="city" type="text" id="city" placeholder="City" maxlength="20"> <input name="zip" type="text" id="state" placeholder="Zip" maxlength="20"> <input name="device" type="hidden" id="device" value="iPhone5" maxlength="20"> <div class="submit-btn"> <input type="submit" value="Submit Request from Email" /> </div> </form> <script> document.getElementById("result").innerHTML = localStorage.getItem("sum"); </script> </div> '; if(!empty($_POST['email_from']) ){ ob_start(); echo $var; $output = ob_get_contents(); ob_end_clean(); $to = $_POST['email_from']; // Send to the email entered by the user $from = "email@example.com"; // This should be YOUR E-mail address $subject = "Form submission"; $message = $output; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "From:" . $from; mail($to,$subject,$message,$headers); } при <?php echo $form = ' <form action="" method="POST" class="location-form"> <input name="email_from" type="text" id="email_from"> <input type="submit" name="submit" value="Submit Request" /> </form> '; if(!empty($_POST['email_from']) ){ // This outputs a message to the user after entering their email, and submits. echo $from2 = "An email has been sent to: " . $_POST['email_from']; } $var = ' <div class="select-location-page"> <h2>Where should we meet you?</h2> <p class="location-sub-header">Fill out this form and we will meet you within 1 hour!</p> <form action="http://www.example.com/mail.php" method="POST" class="location-form"> <div class="device-details"> <h2>Device: iPhone5</h2> <h2>Repair Cost: $<span id="result">0</span></h2> </div> <input name="name" type="text" id="name" placeholder="Name" maxlength="20"> <input name="number" type="text" id="number" placeholder="Number" maxlength="15"> <input name="address" type="text" id="address" placeholder="Address" maxlength="40"> <input name="city" type="text" id="city" placeholder="City" maxlength="20"> <input name="zip" type="text" id="state" placeholder="Zip" maxlength="20"> <input name="device" type="hidden" id="device" value="iPhone5" maxlength="20"> <div class="submit-btn"> <input type="submit" value="Submit Request from Email" /> </div> </form> <script> document.getElementById("result").innerHTML = localStorage.getItem("sum"); </script> </div> '; if(!empty($_POST['email_from']) ){ ob_start(); echo $var; $output = ob_get_contents(); ob_end_clean(); $to = $_POST['email_from']; // Send to the email entered by the user $from = "email@example.com"; // This should be YOUR E-mail address $subject = "Form submission"; $message = $output; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= "From:" . $from; mail($to,$subject,$message,$headers); } 

Опять же, javascript может не работать для этого, поэтому вам, возможно, придется подумать о другом способе или просто опустить его.