用户在测验开始前使用javascript输入名称

时间:2017-03-23 13:10:34

标签: javascript html css

我已经创建了一个测验,但想知道如何在用户输入电子邮件时开始。

基本上我希望用户在开始我的测验之前输入他们的名字,然后一旦他们完成测验,结果会通过电子邮件使用Javascript发送给我。

这可能吗?

1 个答案:

答案 0 :(得分:-1)

据我所知,您无法使用纯JavaScript发送电子邮件,您需要提供服务,后端或php文件..

例如这个php文件:

<?php

header('Content-type: application/json');

$errors = '';

if(empty($errors))
{
    $from_name = $_POST['name'];
    $from_email = $_POST['email'];
    $message = $_POST['message'];

    $to_email = 'your@email.com';
    $to_email_cc = $from_email;

    $contact = "<p><strong>Name:</strong> $from_name</p>
            <p><strong>Email:</strong> $from_email</p>";
    $content = "<p>$message</p>";

    $email_subject = "Neue Nachricht von $from_name erhalten";
    $email_subject_cc = "Deine Nachricht wurde gesendet";

    $email_body = '<html><body>';
    $email_body .= "$contact $content";
    $email_body .= '</body></html>';

    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $headers .= "From: $my_email\n";
    $headers .= "Reply-To: $from_email";

    mail($to_email,$email_subject,$email_body,$headers);
    mail($to_email_cc,$email_subject_cc,$email_body,$headers);

    $response_array['status'] = 'success';
    echo json_encode($response_array);
} else {
    $response_array['status'] = 'error';
    echo json_encode($response_array);
}
?>

然后你可以用它做一个帖子,例如angular,jquery或其他.. 像这样的东西:

postEmail(newMail: Email): Observable<string>{
    let body = `name=${newMail.name}&email=${newMail.email}&message=${newMail.message}`;
    let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
    let options = new RequestOptions({ headers: headers });

    return this._http.post(this._contactUrl, body, options)
                    //.map(res =>  <string> res.json())
                    .catch(this.handleError)
  }

这是我写过一次的angular2的一些旧代码,并没有经过测试,但它应该让你知道如何去做。