首页 > 解决方案 > 如何使用 html 和 javascript 在 db 中插入数据信息

问题描述

我使用 rivescript 和 javascript 创建了一个聊天机器人。我想将用户的消息和聊天机器人响应保存到数据库中。在 html 代码中,我为消息制作了这种形式:

    <div id="dialogue"></div>
    <form onSubmit="return chatbot.sendMessage()">
      <div class="text-box">
         <input type="text" name="message" id="message" autocomplete="off"  placeholder="Please wait... loading...">
        <input class="send-button" type="submit" value=" "  id="butsend">
      </div>
    </form>
  </div>

我使用了一个名为 connect.php 的 php 文件来连接数据库。我修改了命令: <form onSubmit = "return chatbot.sendMessage ()">导致 <form onSubmit = "return chatbot.sendMessage ()" method = "POST" "action =" connect.php> 用户的第一条消息被输入数据库,然后出现一个新的空白页面而不是对话框。是否有任何方法可以在按下发送按钮时继续对话并同时将数据存储在数据库中?

标签: javascripthtmldatabase

解决方案


我已经使用这个函数解决了这个问题:

function writetoDB(inputmessage, outputmessage){

            $.ajax({
                url: "save.php",
                type: "POST",
                data: {
                    user: inputmessage,
                    botreply: outputmessage,

                },
                cache: false,
                success: function(dataResult){

                }
            })
}

调用php文件:

<?php
    include 'database.php';
    $user=$_POST['user'];
    $botreply=$_POST['botreply'];

    $sql = "INSERT INTO `dialogs`( `user`, `bot`) 
    VALUES ('$user','$botreply')";
    if (mysqli_query($conn, $sql)) {
        echo json_encode(array("statusCode"=>200));
    } 
    else {
        echo json_encode(array("statusCode"=>201));
    } 
    mysqli_close($conn);
?>

我现在的问题是并非所有值都导入到数据库中。例如,如果有 20 条消息,则只有 10 条写入 db。


推荐阅读