Php pdo按钮删除行
当特定用户登录时,它将显示他拥有的书籍。。在每个图书删除按钮中。。我想在单击“删除”按钮时删除行。。。但当我点击删除按钮,它重新加载页面,请我需要帮助 这是getbooks函数Php pdo按钮删除行,php,pdo,pagination,Php,Pdo,Pagination,当特定用户登录时,它将显示他拥有的书籍。。在每个图书删除按钮中。。我想在单击“删除”按钮时删除行。。。但当我点击删除按钮,它重新加载页面,请我需要帮助 这是getbooks函数 public function getBooks($start = 0, $limit = 2) { $sql_start = $start * $limit; $sql_limit = $limit; //SELECT loginUser.username, Library.nameOfBoo
public function getBooks($start = 0, $limit = 2)
{
$sql_start = $start * $limit;
$sql_limit = $limit;
//SELECT loginUser.username, Library.nameOfBook FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username="loay";
$query = "SELECT Library.nameOfBook FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username=:username LIMIT $sql_start, $sql_limit";
$statment = $this->db->prepare($query);
$statment->execute([
':username' => $this->username
//,':start' => $start, ':limit' => $limit
]);
$result = $statment->fetchAll();
echo "<table border='1'>
<form method='POST'>
<tr>
<th>Books</th>
<th>Action</th>
</tr>";
foreach($result as $row){
echo "<tr>";
echo "<td>" . $row['nameOfBook'] . "</td>";
echo "<td>" ."<input type='submit' name='delete' value='Delete' method='post' >" . "</td>";
echo "</tr>";
}
echo "</table>";
echo "</form";
if(isset($_POST['delete'])){
die("SS");
}
}
公共函数getBooks($start=0,$limit=2)
{
$sql\u start=$start*$limit;
$sql\u limit=$limit;
//从userBook.user\u id=loginUser.id和userBook.book\u id=Library.id上的loginUser.username、Library.nameOfBook中选择loginUser.username、Library.nameOfBook,其中loginUser.username=“loay”;
$query=“在userBook.user\u id=logiuser.id和userBook.book\u id=Library.id上选择logiuser中的Library.nameOfBook加入userBook加入Library,其中logiuser.username=:username LIMIT$sql\u start,$sql\u LIMIT”;
$statment=$this->db->prepare($query);
$station->execute([
':username'=>this->username
//,':start'=>$start':limit'=>$limit
]);
$result=$station->fetchAll();
回声“
书
行动
";
foreach($结果为$行){
回声“;
回显“$row['nameOfBook']”;
回声“.”;
回声“;
}
回声“;
echo“我使用jquery和ajax实现了删除功能 在表格代码上方添加:
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
function deleteBook(b) {
$(document).ready(function() {
var book = $(b).parent('td').prev('td').html();
if(confirm("Are you sure you want to delete book - "+book+"?") == false){
return;
}
var ids = $(b).attr('id').substr(6).split('-');
var book_id_to_delete = ids[0];
var user_id = ids[1];
//alert("book_id is " + book_id_to_delete + ", user_id is " + user_id);
$.ajax({
type: "POST",
url: "" + "deletebook.php",
data: {
'book_id': book_id_to_delete,
'user_id': user_id,
submit: 'submit',
},
success: function(res) {
if (res == "deleted") {
$(b).closest('tr').remove();
} else {
alert(res);
}
}
});
});
}
</script>
下面的代码将通过ajax执行,以便从数据库中删除所选的书籍
创建一个名为-deletebook.php的文件
并添加以下代码:
<?php
include_once('User.php');
if(isset($_POST['submit'])){
$object = new User();
if($object->deleteBook($_POST['book_id'], $_POST['user_id'])){
die('deleted');
}
else {
die("fail");
}
}
?>
您只是提交了当前页面,这就是重新加载页面的原因。如果您不想重新加载页面,而只想删除要发送的数据,那么选择Ajax,您是否尝试过这个?'echo'他给了我这个错误警告:在……中遇到了一个非数值警告:在/var/www/html/user.php第111行遇到了一个非数值警告:在/var/ww中遇到了一个非数值警告:在/var/ww中遇到了一个非数值w/html/User.php第111行让我们来看看。
public function deleteBook($book_id, $user_id)
{
$stmt = $this->db->prepare("DELETE FROM userBook WHERE book_id = :book_id AND user_id = :user_id");
$stmt->bindValue(":book_id", $book_id);
$stmt->bindValue(":user_id", $user_id);
return $stmt->execute();
}
<?php
include_once('User.php');
if(isset($_POST['submit'])){
$object = new User();
if($object->deleteBook($_POST['book_id'], $_POST['user_id'])){
die('deleted');
}
else {
die("fail");
}
}
?>