Ajax更新文本区域,而无需按钮或页面刷新

时间:2019-03-08 19:12:29

标签: javascript php ajax

我正在尝试创建一个文本区域,该区域无需按按钮或刷新页面即可自动更新数据库。发生“键控”后,将有一个计时器将倒计时2秒钟。如果在这2秒钟内未进行任何其他输入,则应在数据库中更新数据。如果输入,计时器将重启。

我已经在下面编写了ajax代码,它似乎不起作用。

$(document).ready(function() {
  var timer;
  $('#about').on('keyup', function() {
    var value = this.value;
    clearTimeout(timer);
    timer = setTimeout(function() {
      //do your submit here
      $("#about").submit()
      alert(value);
    }, 2000);
  });
  var about = $('#about').val().trim();
  $.ajax({
    url: "comment.php?customer_id=" + "<?php echo $customer_id; ?>",
    type: 'post',
    data: {
      about: about
    },
    success: function(response) {
      $('#cid').val(response);
    }
  });
});
/* This is comment.php */

<?php
session_start();
require_once 'config/config.php';
require_once 'includes/auth_validate.php';

$cid = $_GET['customer_id'];
$about = $_POST['about'];

$sql = ("UPDATE patient_id SET about = ? WHERE id = ?;");

$stmt = mysqli_stmt_init($conn);
mysqli_stmt_prepare($stmt, $sql);
mysqli_stmt_bind_param($stmt, "si", $about, $cid);
mysqli_stmt_execute($stmt);
?>

1 个答案:

答案 0 :(得分:0)

将ajax移到超时中,而不是执行提交,因为要使用ajax更新。

$(document).ready(function() {
  var timer;
  $('#about').on('input', function() {
    var value = this.value;
    clearTimeout(timer);
    timer = setTimeout(function() {
      alert(value);
      $.ajax({
        url: "comment.php?customer_id=" + "<?php echo $customer_id; ?>",
        type: 'post',
        data: {
          about: value
        },
        success: function(response) {
          $('#cid').val(response);
        }
      });
    }, 2000);
  });
});