javascript - 如何使用 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>
用户的第一条消息被输入数据库,然后出现一个新的空白页面而不是对话框。是否有任何方法可以在按下发送按钮时继续对话并同时将数据存储在数据库中?
解决方案
我已经使用这个函数解决了这个问题:
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。
推荐阅读
- node.js - 是否可以使用 pm2 查看端口详细信息?
- asp.net-core - cshtml 文件中的 Asp.Net Core 电子邮件字段验证
- java - 方法的冗余声明
- ssh - 谷歌云计算引擎:即使在浏览器中也无法与 ssh 连接
- c# - 是否可以使用 SQLConfigDataSourceW 从 C# 创建 ODBC 系统 DSN?
- webstorm - 如何在 WebStorm 中添加“自定义”项目模板
- billboard.js - billboard.js - 根据标签值设置颜色,以便给定标签的数据在多个图表中一致着色
- docker - Docker - 无法从容器内 ping 主机子网上的任何内容
- python - 无法从 API 获取 Facebook 好友
- firefox - 在没有附加组件、扩展或插件的情况下加载 Firefox