使用AJAX和JS动态删除MySQL数据

时间:2012-07-05 12:02:20

标签: javascript mysql ajax

您好我正在尝试使用JS和AJAX动态删除数据库条目而不刷新整个页面。 这是我的data.php文件:

<?php
require_once('db.php');

if (isset($_GET['list'])) {
   $query = "SELECT * FROM message";
   mysql_query("SET NAMES 'UTF8'");
   $qq=mysql_query($query);
   $i = 1;
   echo '<div id="rezult">';

while($ff = mysql_fetch_array($qq)){
echo '<div id="id'.$ff['id'].'">'.$i++.'. Name: '.$ff['name'].' Message:'.$ff['message'].'</div>';
}
echo '</div>';
}
?>

使用此代码我正在从mysql表中检索数据:

的index.php

  function list() { 
$.get('data.php?list=1', function(o) {
            $('#list').html(o);
            });
}

如何在不刷新页面的情况下动态删除所需的条目? 我试图在下面添加此代码作为条目的链接,但它会像这样被剪切javascript:$.post(。  <a href="javascript:$.post('delete_post.php', { id: '$ff[id]' } );" class='delete_post' title='delete post'>delete post</a>

感谢您的建议

1 个答案:

答案 0 :(得分:0)

小心!如果有人打电话给你的php文件data.php?list = ANYNUMBER他将能够删除任何行,请确保你使用安全工具来避免这种情况。如果你使用{{3}我认为这会更容易。

尝试这样的事情:

$.ajax({
  type: "POST",
  url: "list.php",
  data: { list: "1", session_id: session_ID }
}).done(function( msg ) {
  alert( "Data deleted: " + msg );
});

其中session_id是字段的值(在您的示例中为1),session_id是当有人转到您的页面时为其分配SESSION_ID,在他单击删除按钮后,您比较您分配的会话ID是否为等于来自服务器的session_id(你可以避免来自其他站点的人调用你的list.php)。如果来自ajax的session_id等于服务器上的session session_id允许删除,请查看:ajax and Jquery