Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t将TextArea字段发布到mySql数据库_Javascript_Php_Html - Fatal编程技术网

Javascript Can';t将TextArea字段发布到mySql数据库

Javascript Can';t将TextArea字段发布到mySql数据库,javascript,php,html,Javascript,Php,Html,我正在努力寻找一个解决方案,将文本区域值发布到mysql。我有一个日历应用程序,可以在每天的窗口上单击添加事件。我用Javascript创建了一个函数“onclick”,以便在本地存储中设置值,并且一切正常。我还想在Mysql的数据库中发布这些值。在这里,我正在努力寻找解决方案 我曾尝试使用php创建与数据库的连接,并设置各种设置,但似乎“保存”按钮仅用于将值保存到本地存储上,而不是将信息发布到sql server上 这是我的数据库连接和设置: <?php $errors = ""; /

我正在努力寻找一个解决方案,将文本区域值发布到mysql。我有一个日历应用程序,可以在每天的窗口上单击添加事件。我用Javascript创建了一个函数“onclick”,以便在本地存储中设置值,并且一切正常。我还想在Mysql的数据库中发布这些值。在这里,我正在努力寻找解决方案

我曾尝试使用php创建与数据库的连接,并设置各种设置,但似乎“保存”按钮仅用于将值保存到本地存储上,而不是将信息发布到sql server上

这是我的数据库连接和设置:

<?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();
}