【问题标题】:Saving HTML5 canvas image then sending via e-mail with PHP保存 HTML5 画布图像,然后使用 PHP 通过电子邮件发送
【发布时间】:2014-10-18 11:54:01
【问题描述】:

所以我在我的网站 (www.100danish.com) 上有一个表单,其中包含一个 HTML5 画布元素,供用户随表单一起绘制图片。

我想要发生的是用户单击提交,这会发送画布的图像以及表单信息(姓名、电子邮件和消息)。现在我的 AJAX 和 PHP 如下。我知道我需要使用 JavaScript 和 PHP,但 PHP 不是我的专长。

任何帮助将不胜感激!

JavaScript

//AJAX request to submit form
$('form').submit(function(evt) {
    evt.preventDefault();
    var canvasData = canvas.toDataURL('image/png');
    var url = $(this).attr("action");
    var formData = $(this).serialize();
    $.post(url, [formData, canvasData] function(response) {
        $('#contact-bottom').html("<p class='ajax-p'>Thanks for reaching out to us, we'll be in touch with you soon<br>Joey &amp; Trev</p>")
    })
});

PHP

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];


    $from = 'From: $name'; 
    $to = 'joey@100danish.com'; 
    $subject = '100 Danish Form Submission';
    $body = "From: $name\nE-Mail: $email\n\nMessage:\n$message";

    mail ($to, $subject, $body, $email);
  ?>

【问题讨论】:

    标签: javascript php ajax canvas html5-canvas


    【解决方案1】:

    您要问 2 个单独的问题:(1) 将画布数据发送到服务器,(2) 发送电子邮件。问题 2 在互联网上随处可见。问题1可以解决如下:

    HTML:

    <canvas id="myCanvas" width="800" height="450"></canvas>
    

    JS:

    //get base64 data
    var canvas = $("#myCanvas").get(0);
    var data   = canvas.toDataURL();
    
    //send to server
    var request = $.ajax({
      type: "POST",
      url:  "canvas-data-receiver.php",
      data: { 
        base64Data:data
      }
    });
    
    request.done(function(response) {
      alert("Data posted to server!");
    });
    
    request.fail(function(){
      alert("Failed to send data to server!");
    });
    

    【讨论】:

    • 对不起,我最初的问题很混乱。我希望通过电子邮件发送画布图像,而不是将其保存到服务器。
    • 有解决办法吗?
    猜你喜欢
    • 1970-01-01
    • 2011-09-03
    • 2018-09-20
    • 1970-01-01
    • 2019-02-14
    • 2022-08-18
    • 2017-12-08
    • 1970-01-01
    • 2012-04-24
    相关资源
    最近更新 更多