javascript - AJAX 仅在一行中发送文本

标签 javascript php html ajax

我的 ajax 请求出现问题。
我有一个表单,有两个文本输入和一个文本区域以及一个 ajax 函数,该函数将三个输入的文本发送到另一个名为 mail.php 的页面,然后 mail.php 发送包含这些数据的电子邮件并返回 1如果电子邮件发送正确,则为 ;如果发送错误,则为 0。它可以工作,但在收到的电子邮件中,文本仅在一行中,即使在文本区域中我有 3 或 4 行。 这是形式:

<div id="form">
    <input type="email" class="style" id="mail" maxlength="80" placeholder="Inserisci la tua e-mail" required />
    <br>
    <input type="text" class="style" id="subject" maxlength="50" placeholder="Oggetto" required />
    <br>
    <textarea id="message" class="style" placeholder="Scrivi il messaggio..." rows="8" maxlength="2000" required></textarea>
    <br>

    <button type="submit" id="submit_button"><div><p class="send_button_content">Invia</p><img id="send_button_icon" class="send_button_content" src="send_icon.png"></div></button>
</div>

这是 ajax 函数:

function sendEmail(){
                var mail;
                var subject;
                var message;
                mail = $("#mail").val();
                subject = $("#subject").val();
                message = $("#message").val();
                if (mail !="" && subject !="" && message !="") {
                    if (emailCheck(mail)){
                   $.post("mail.php",{mail: mail,subject: subject,message: message},function(data){alert(data);});
                   }else{
                        alert("The e-mail is not correct")  
                   }
                } else {
                        alert("Fill all");
                }
            }
                $("#submit_button").click(function(){sendEmail(); });

mail.php 是这样的:

$mail = $_POST['mail'];
$subject = "Nuovo messaggio: ".$_POST['subject'];
$message = "<html>
        <head>
        </head>
        <body>
        <p>New message from: ".$mail."<br>
        Message: ".$_POST['message']."<br>
        <a href='mailto:".$mail."?subject=".$_POST['subject']."' style='color:blue' target='_blank'>Reply here</a>
        </p>
        </body>
        </html>";

if($mail != "" && $subject != "" && $message != ""){
    $to = "***********@gmail.com"; 
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $result = mail($to,$subject,$message,$headers) or die('0');
    if(result){
        die('1');
    }else{
        die('0');
    }
}else{
    die('0');
}

有没有一种方法可以接受我写的文本并发送它?

最佳答案

使用 nl2br()

 $message=nl2br($_POST['message']);

关于javascript - AJAX 仅在一行中发送文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36629683/

相关文章:

html - 在全 Angular 元素上创建均匀阴影

javascript - 如何改变div标签innerhtml的位置

javascript - 添加刻度定位器后 Highcharts 崩溃

php - 循环MySQL并使用PHP添加点

html - 更改部分文本占位符颜色

javascript - 如何在使用 JavaScript 单击按钮时自动添加列

javascript - 在 react 中使用异步等待从火力存储中检索图像

javascript - 在长度受限的输入上运行 JavaScript 代码

php - 创建目录 PHP 时用户为 "nobody"

php - 错误:调用未定义的方法 ComposerAutoloaderInit13c2409cfa32d1fa0c04493c0d85c93c::getLoader()