javascript - 如何从java脚本回复按钮获取值到数据库中?

标签 javascript php

下面是单击“回复”按钮时显示文本框的 Java 脚本代码。

    while($row = mysqli_fetch_array( $results )) { 
    echo  "<div class='cmt'>
   <div class='cmttext'></div>
   <button class='replybtn'>Reply</button>
   <div class='replyform'></div>
   </div> ";        
   } 

和java脚本

<script type="text/javascript">
var varHtml = "<form method='post' action=''><textarea name='reply'></textarea>  <input type='button' value='Cancel' onclick='history.go(0)' />  <input type='submit' /> </form>";
var allElements = document.body.getElementsByClassName("replybtn");
var addCommentField = function() {
  for (var i = 0; allElements.length > i; i++) {
    if (allElements[i] === this) {
      console.log("this " + i);
      if (document.getElementsByClassName("replyform")[i].innerHTML.length === 0) {
        document.getElementsByClassName("replyform")[i].innerHTML = varHtml;
      }
    }
  }
};

for (var i = 0; i < allElements.length; i++) {
  allElements[i].addEventListener('click', addCommentField, false);
}    
</script>

如何从文本框中获取值并将其存储到数据库中?

最佳答案

假设您想使用 Ajax,您需要将一个单击处理程序附加到按钮,该处理程序将获取相关值并将它们发送到服务器端脚本(例如 PHP),然后该脚本可以将它们插入到数据库中.

(如果您不想使用 Ajax,只需使用表单并像平常一样提交即可)。

这是一个通用示例(使用 jQuery),它可以做到这一点。您可以根据您的需要进行调整:

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Ajax example</title>
  </head>
  <body>
    <form action="">
      <input type="text" id="myTextField" />
      <button>Submit</button>
    </form>

    <script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
    <script>
      function submitValuesToDatabase(values){
        $.ajax({
          url: '/path/to/submit.php',
          type: 'POST',
          data: values
        })
        .done(function(res) {
          console.log("success");
          console.log("The server replied: " + res);
        })
        .fail(function(err) {
          console.log("Something went wrong!");
          console.log(err);
        })
        .always(function() {
          console.log("complete");
        });
      }

      $("button").on("click", function(e){
        e.preventDefault();
        var values = {
          val1: $("#myTextField").val()
        }
        submitValuesToDatabase(values);
      });
    </script>
  </body>
</html>

提交.php

<?php
// Retrieve values from $_POST
// And insert them into database

print_r($_POST);

如果您(在服务器上)运行此演示,您将在控制台中看到类似于以下内容的输出:

success
The server replied: Array
(
    [val1] => rtzr
)

complete

因此,在这种情况下,要在 PHP 脚本中获取对 val1 的引用,您可以执行以下操作:

$val1 = filter_var($_POST['val1'], FILTER_SANITIZE_STRING);

如果不清楚,请告诉我。

编辑: .always() .fail().done() 回调并不是绝对必要的。我将它们包含在内是为了演示目的,但请随意将它们排除在外。

关于javascript - 如何从java脚本回复按钮获取值到数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32138710/

相关文章:

php - 查看属性数组

php - 提交时更改表单操作的最佳方法

php - 使用 for 循环将数组实例插入表中

javascript - 我如何制作此幻灯片的动画(通过更改其 src)?

javascript - 基于按钮大小的 Bootstrap 文本对齐

javascript - 需要帮助使该翻译函数能够处理数组输入

javascript - 如何使用 JavaScript Canvas 上的按钮循环浏览文本列表

javascript - 用特定的单词替换每个单词javascript正则表达式

php - 无法从 Cpanel 打开 PhpMyadmin

apache - 如何使用 Plesk 编辑 php.ini 文件