0

您好我正在尝试使用 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 表中检索数据:

索引.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>

感谢您的建议

4

1 回答 1

0

小心!如果有人调用您的 php 文件 data.php?list=ANYNUMBER 他将能够删除任何行,请确保您使用安全工具来避免这种情况。如果您使用ajax 和 Jquery,我认为它会更容易。

尝试这样的事情:

$.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 允许删除,请查看: PHP Session Security

于 2012-07-05T12:24:15.933 回答