Javascript Can';t将TextArea字段发布到mySql数据库
我正在努力寻找一个解决方案,将文本区域值发布到mysql。我有一个日历应用程序,可以在每天的窗口上单击添加事件。我用Javascript创建了一个函数“onclick”,以便在本地存储中设置值,并且一切正常。我还想在Mysql的数据库中发布这些值。在这里,我正在努力寻找解决方案 我曾尝试使用php创建与数据库的连接,并设置各种设置,但似乎“保存”按钮仅用于将值保存到本地存储上,而不是将信息发布到sql server上 这是我的数据库连接和设置:Javascript Can';t将TextArea字段发布到mySql数据库,javascript,php,html,Javascript,Php,Html,我正在努力寻找一个解决方案,将文本区域值发布到mysql。我有一个日历应用程序,可以在每天的窗口上单击添加事件。我用Javascript创建了一个函数“onclick”,以便在本地存储中设置值,并且一切正常。我还想在Mysql的数据库中发布这些值。在这里,我正在努力寻找解决方案 我曾尝试使用php创建与数据库的连接,并设置各种设置,但似乎“保存”按钮仅用于将值保存到本地存储上,而不是将信息发布到sql server上 这是我的数据库连接和设置: <?php $errors = ""; /
<?php
$errors = "";
// connect to database
$db = mysqli_connect("localhost", "root", "pa", "todo");
// insert a quote if submit button is clicked
if (isset($_POST['submit'])) {
if (empty($_POST['task'])) {
$errors = "You must fill in the task";
}else{
$task = $_POST['task'];
$sql = "INSERT INTO tasks (task) VALUES ('$task')";
mysqli_query($db, $sql);
header('location: index.php');
}
}
?>
单击该保存按钮将在日历窗口内保存文本,但该按钮没有将信息提交到sql server(我可以看到该页面没有像应该的那样重新加载)。警告!您很容易受到SQL注入攻击。使用参数化的预处理语句,而不是像那样在查询中直接注入完全未经处理的用户数据。由于没有转义用户数据,因此如果文本包含单引号或以反斜杠结尾,查询将中断。准备好的语句可以为您解决这个问题。
textEvent.submit()代码>。您正在尝试提交文本区域。那不行。您可以只提交表单。您可能想考虑使用Ajax将数据发送到PHP脚本以保存到DB而不是提交表单。IMHO,复制的帖子与此问题无关,因为OP清楚地声明表单甚至没有提交。有时候这里的人标记重复项有点太快了。我认为这是一个javascript问题。现在是处理Save按钮beahviour的Js,即使在html中有submit属性,也不再像正常的输入那样发布了。
<form action="index.php" method="post" name="myForm">
<textarea class="modal-textarea" method="post" type="textarea" name="task" form="confirmationForm"></textarea>
<div class="modal-btn-wrapper">
<button class="modal-save-btn btn modal-btn" type="submit" name="submit">Save</button>
<button class="modal-cancel-btn btn modal-btn" >Cancel</button>
</form>
I've tried to put post method into the textArea attreibute field.
const saveButton = modal.querySelector(`.modal-save-btn`);
function onSaveButton(evt) {
evt.preventDefault();
const textEvent = modal.querySelector(`.modal-textarea`).value;
const modalID = modal.getAttribute(`data-id`);
const cellById = calendarBody.querySelector(`td[data-id="${modalID}"]`);
const cellParagraph = cellById.querySelector(`p`);
textEvent.submit();
// set text in localStorage
localStorage.setItem(modalID, textEvent);
// create layout text event massage
cellParagraph.innerHTML = textEvent;
onCloseButton();
}