【问题标题】:Update database on buttonclick with AJAX and PHP [duplicate]使用 AJAX 和 PHP 在单击按钮时更新数据库 [重复]
【发布时间】:2016-01-18 12:43:30
【问题描述】:

我已经搜索了所有内容,但找不到解决方案。我还是 PHP 和 AJAX 的初学者,所以请多多包涵。

我有一个文件 fetch.php,它为我的页面 index.html 生成内容。 Fetch.php 从 MySQL 数据库中获取数据并将其添加到我的索引页面,如下所示:

while ($res = mysqli_fetch_array($rs)) {
$str .= '<div class="task" id='.$res['tid'].'>
      <table>
              <tr>
                      <td>
                      <button class="btnDelete" data-id="'.$res['tid'].'">x</button>
                      </td>
                      <td>'.$res["name"].'</td>
              </tr>
              <tr>
              <td>'. $res["task"].'</td></tr></table></div>';
}

echo $str;

“tid”是我的表索引。现在,当我单击 data-id 为 1 的按钮时,我想删除 tid 为 1 的行。

<script type="text/javascript">
$('.btnDelete').click(function() {
var recordid = $('.btnDelete').data('id');
$.ajax({
  type: 'POST',
  url: 'remove.php',
  data: { 'id': recordid},
});
});
</script>

这会将(假定的)data-id 发送到以下 PHP。

  $con = mysqli_connect(HOST,USERNAME,PASSWORD,DB);

 if (!$con) {
die("Can not connect: " .mysql_error());
}

$id = $_POST['recordid'];
$sql = "UPDATE tasks SET visible = 'hide' WHERE tid = $id ";

$query = mysqli_query($con, $sql);

if(mysqli_affected_rows($con)) {
    echo "Record deleted successfully";
}

mysqli_close($con);

我的 PHP 文件可以工作,但是当我单击按钮时没有任何反应? 以下是我的完整 HTML:

<!DOCTYPE html>
<html>
 <head>
 <title>test</title>
 <link rel="stylesheet" type="text/css" href="style.css">
 <script src='https://code.jquery.com/jquery-2.1.3.min.js'></script>


<script type="text/javascript">

$(function() {

    getStatus();

});

function getStatus() {

    $('div#data').load('fetch.php');
    setTimeout("getStatus()",300000);

}

</script>


 </head>

 <body>

    <div id="data"> 

    </div>

    <script type="text/javascript">
$('.btnDelete').click(function() {
    var recordid = $('.btnDelete').data('id');
   $.ajax({
      type: 'POST',
      url: 'remove.php',
      data: { 'id': recordid},
   });
});
</script>

 </body>
</html>

如何让 AJAX 在 buttonclick 上触发并将 data-id 发送到 remove.php?

这不是重复的,这是一个 AJAX 问题而不是 MySQL 问题

【问题讨论】:

  • 这不是重复的,这是一个 AJAX 问题而不是 MySQL 问题
  • 副本是关于 jQuery AJAX,而不是 MySQL。您是否在浏览器的控制台中查看过请求/响应?

标签: php jquery html ajax


【解决方案1】:

当您的AJAX 加载您的HTML 并将其注入页面时,您必须在绑定时使用on 事件。

$(document).on("click", ".btnDelete", function () {
    /** Your code here. **/
}); 

阅读材料

Event Delegation

【讨论】:

  • 它不工作。它在按钮点击时什么也不做
猜你喜欢
  • 2018-02-14
  • 1970-01-01
  • 2016-06-11
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 2019-01-26
  • 1970-01-01
相关资源
最近更新 更多