首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >需要帮助将超文本标记语言和画布数据插入到MySQL数据库中

需要帮助将超文本标记语言和画布数据插入到MySQL数据库中
EN

Stack Overflow用户
提问于 2018-08-18 04:31:06
回答 2查看 169关注 0票数 0

我有一个小的网络应用程序,你可以在画布上绘制并留下评论(使用表单提交)。现在,我只需要帮助将数据发送到MySQL数据库中。

这是一个表单,用户可以在其中输入他们的评论。当他们点击"Post“按钮时,一个叫做"boo”的函数就会运行。

代码语言:javascript
复制
<form action="testSave.php" method="post" onsubmit="boo();">
    <div id="canvas-bottom">
        <input type="text" id="comment-box" name="comment" placeholder="Comment"/>
        <input type="submit" id="post-button" name="post" value="Post"/>
    </div>
</form>

"boo“函数获取画布数据并将其发送到另一个名为"testSave.php”的PHP文件。

代码语言:javascript
复制
<script>
function boo(){
    var canvasData = drawingCanvas.toDataURL();     
    $.ajax({
      type: "POST",
      url: "testSave.php",
      data: { 
         canvasData: canvasData
      }
    })
}
</script>

这是"testSave.php“文件

代码语言:javascript
复制
<?php
if(isset($_POST['canvasData'], $_POST['post'])) {
    $img = $_POST['canvasData'];
    $filteredData = substr($img, strpos($img, ",")+1);

    $comment = strip_tags($_POST['comment']);   
    $comment = mysqli_real_escape_string($db, $comment);

    $sql = "INSERT into posts (sketch, comment) VALUES ('$filteredData', '$comment')";

    mysqli_query($db, $sql);

    header("Location: index.php");
}
?>

当这个程序运行时,它把我送到它的空白白色网页(/testSave.php),不起作用。

因此,我尝试将此数据发送到mysql数据库表中的"sketch“(画布数据将放入的位置)和"comment”(输入数据将放入的位置)下。

如果有人能帮我解决这个问题,我将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2018-08-18 04:49:31

我不认为您定义了$db,这可能是问题所在,因为您的代码不知道将数据插入到何处。正如其他人所说的,最好也使用准备好的语句。

代码语言:javascript
复制
if(isset($_POST['canvasData']) and isset($_POST['post'])) {

$mysqlHost = "";
$mysqlUser = "";
$mysqlPassword = "";
$mysqlDatabase = "";

$db=mysqli_connect($mysqlHost, $mysqlUser, $mysqlPassword, $mysqlDatabase);
$img = $_POST['canvasData'];
$filteredData = substr($img, strpos($img, ",")+1);
$comment = strip_tags($_POST['comment']);

if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$stmt = $db->prepare("INSERT into posts (sketch, comment) VALUES (?, ?)");
$stmt->bind_param("ss", $filteredData, $comment);
$stmt->execute();
$stmt->close();
$db->close();
}
?>
票数 0
EN

Stack Overflow用户

发布于 2018-08-18 04:49:40

因为你想使用ajax提交,你的代码应该是这样的;

HTML

代码语言:javascript
复制
 <form action="" method="post">
        <div id="canvas-bottom">
            <input type="text" id="comment-box" name="comment" placeholder="Comment"/><br>
<span id="msg" style="color: green;font-style: italic;"></span> // success message
            <input type="submit" id="post-button" name="post" value="Post"/>
        </div>
    </form>

JS

代码语言:javascript
复制
$(document).ready(function(){
            $("#post-button").click(function(){
                var name =$("#comment-box").val();
                $.ajax({
                    url:'testSave.php',
                    method:'POST',
                    data:{
                        name:name
                    },
                   success:function(response){
                       $("#msg").html(response);
                   }
                });
            });
        });

PHP (testSave.php)

代码语言:javascript
复制
  <?php
        $img = $_POST['canvasData'];
        $filteredData = substr($img, strpos($img, ",")+1);

        $comment = strip_tags($_POST['comment']);   
        $comment = mysqli_real_escape_string($db, $comment);

        $sql = "INSERT into posts (sketch, comment) VALUES ('$filteredData', '$comment')";

        if (mysqli_query($db, $sql)) {
              echo "Inserted successfully";
       } else {
              echo "failed";
       }
    ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51902486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档