>mysql

xv8emn3q  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(359)

我写了一个网页,这是为了像一个调查,提交两个在html文本框以及画布绘图图像条目。目前,我有我的php文件传输从html格式通过'后'插入数据库一旦“提交”被按下。在html文件中的脚本中,我通过“var dataurl=canvas.todataurl();”转换画布绘图。
我想知道如何将var dataurl与我的html表单一起发送到mysql(希望使用相同的php文件)。我也不完全确定dataurl应该如何存储在mysql中。但目标是创建一个类似“id,name,image(dataurl)”的条目。我对php还是相当陌生,听说ajax经常被使用,但我不知道如何使它与html表单一起工作。
感谢您的帮助,谢谢!

cidc1ykv

cidc1ykv1#

如果你知道javascript,那么请学习jquery,因为它将有助于使ajax请求更简单。在ajax的帮助下,您可以使用post发送数据。
要存储数据url,需要在mysql表中指定文件的地址:例如:如果我的profile图像位于“rootdir/profiles/myname.jpg”中,则在表中存储“profiles/myname.jpg”。

piztneat

piztneat2#

如果您想提交表单数据而不实际导航到浏览器中的脚本url,那么您需要使用ajax。ajax允许您将数据发送到脚本并接收来自脚本的响应,而无需离开当前页面。如果这正是您所要寻找的,那么有很多关于如何在so和其他源代码上使用ajax的示例。但是,由于您有一些要发送的自定义数据,因此有两个选项:
向表单中添加一个隐藏输入,并用dataurl填充该隐藏输入的值。
将自定义数据附加到序列化表单数据。
使用第二个选项,您的ajax调用将如下所示:

// this is the id of the form
$("#idForm").submit(function(e) {
    var form = $(this);
    var url = form.attr('action'); //PHP script URL can also be manually entered here if the form does not have the 'action' attribute set

    // get the dataURL from the canvas element
    var dataURL = encodeURIComponent(canvas.toDataURL());

    // build AJAX data string
    var dataString = form.serialize() + "&dataURL=" + dataURL;

    $.ajax({
        type: "POST",
        url: url,
        data: dataString,
        success: function(data){
            alert(data); // *optional* show response from the php script.
        }
    });

    e.preventDefault(); // cancel actual form submission.
});

至于在mysql数据库中存储dataurl值,可以使用格式化为 TINYTEXT , TEXT , MEDIUMTEXT ,或 LONGTEXT 根据所生成的dataurl字符串的预期大小(请参阅mysql 8.0参考手册中的blob和文本类型)。祝你好运!

2eafrhcq

2eafrhcq3#

您目前是如何发送数据的?您是否在todataurl()中指定了数据的格式?您还可以检查以下内容:解码canvas todataurl并通过ajax将canvas.todataurl()发送到php,您还可以使用canvas.todataurl(“image/png”)将其作为图像发送。
这个问题是最接近你的问题和一个可能的重复看看如何保存一个html5画布作为一个服务器上的图像?
还将介绍如何使用canvas.todataurl()将画布另存为图像?使用ajax进行表单提交,将表单数据传递给php,而无需刷新页面

相关问题