首页 > 解决方案 > Ajax jQuery 从数据库中获取数据而不刷新

问题描述

我正在研究一个喜欢/不喜欢的系统。为此,我不想刷新页面来做类似的事情,所以我正在执行一个非刷新 PHP 脚本,它使用 jQuery 和一个表单:

<form action="<?php echo ROUTE; ?>/dislike.php" id="dislike-form" method="POST">
  <button id="dislike-submit">
    <i id="dislike" class="fa fa-thumbs-o-down" aria-hidden="true"></i>
  </button>
</form>

如您所见,它的作用是dislike.php。在该文件上,此代码已完成:

$sentence = $connection->prepare("
  UPDATE test_likes SET dislikes = dislikes + 1
");
$sentence->execute();

在这种情况下,我们将被重定向到dislike.php,但要停止重定向并在不重新加载页面的情况下执行 SQL 查询,我将其添加到与上述表单相同的文件中:

<script>
$('#dislike-form').submit(function(){
  return false;
});

$('#dislike-submit').click(function(){
  $.post( 
    $('#dislike-form').attr('action'),
    $('#dislike-form :input').serializeArray(),
  );
});
</script>

因此,一旦执行查询,它确实会更新数据库,但我想在完成后使用 jQuery 或 AJAX 带来结果。我怎样才能做到这一点?

标签: javascriptphpjqueryajax

解决方案


您可以根据其成功与否通过以下任一方法获得结果。您可以在此处找到更多详细信息。

// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
$.post( "example.php", function() {
  alert( "success" );
})
  .done(function( data ) {
   alert( "Data Loaded: " + data );
  });
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "finished" );
  });
 

推荐阅读