2016-01-17 2 views
4

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

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 
if (isset($_POST['submit'])){ 
//  $to = file_get_contents('to.txt'); 
$to = "[email protected]"; 
$subject = "Form to email message"; 
$message = $_POST["message"]; 
$header = 'MIME-Version: 1.0' . "\r\n"; 
$header .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; 
$header .= 'From: Skayos Blog <[email protected]>' . "\r\n"; 
mail($to,$subject,$message,$header); 
} else if (isset($_POST['preview'])){ 
$output = $_POST["message"]; 
echo $output; 
} 
?> 

<!DOCTYPE html> 
<head> 
    <title>Form submission</title> 
</head> 

<body> 
    <form action="" method="post"> 
     Message:<br> 
     <textarea rows="5" name="message" cols="30">&lt;html&gt; &lt;body&gt; &lt;/body&gt; &lt;/html&gt;</textarea><br> 
     <input type="submit" name="preview" value="Preview"> 
     <input type="submit" name="submit" value="Submit"> 
    </form> 

</body> 
</html> 

Моей проблема: Если я нажимаю Preview, боковые перезагружается с предварительным просмотром, и код будет удален. Есть ли простой способ сделать код в текстовом поле?

Спасибо,
Skayo

ответ

3

1) Простое решение, когда ваш код размещен значение изменения в текстовое поле.

<?php  
    $msg = ""; 
    if (strlen($_POST['message'] > 0) 
     $msg = $_POST['message']; 
?> 

Message:<br><textarea rows="5" name="message" 
value="<?php echo $msg; ?>" cols="30">&lt;html&gt; 
&lt;body&gt; &lt;/body&gt; &lt;/html&gt;</textarea><br> 

2) Вы можете динамически загружать контент с помощью AJAX без перегрузки страницы.

<script> 
function prewiev() { 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      document.getElementById("message").innerHTML = xmlhttp.responseText; 
     } 
    }; 
    xmlhttp.open("GET", "preview.php?str=" + document.getElementById("message").value, true); 
    xmlhttp.send(); 
} 


<form action="" method="post"> 
    Message:<br> 
    <textarea id="message" rows="5" name="message" cols="30"> 
     &lt;html&gt;&lt;body&gt; &lt;/body&gt; 
     &lt;/html&gt; 
    </textarea><br> 
    <button name="preview" onClick="prewiev()"> 
    <input type="submit" name="submit" value="Submit"> 
</form> 
Смежные вопросы