我試圖創建一個點擊時會添加記錄到數據庫,然後再次單擊時按鈕,將刪除從數據庫這個記錄(這是一個'favourite'
按鈕) 。添加AJAX,並與同一個按鈕刪除
我希望它的工作如下;
用戶點擊「最愛」按鈕>按鈕狀態更改爲成功>記錄添加
用戶點擊「最愛」按鈕再次>狀態更改爲默認>記錄從數據庫
到目前爲止我的代碼刪除接下來(更新代碼感謝@Peter);
books_model.php
class BooksModel
{
public function checkFav($bookid,$userid)
{
$book_id=$_REQUEST['book_id'];
$user_id=$_SESSION['user_id'];
$sql = "SELECT * FROM favourite WHERE user_id=? AND book_id=?";
$query = $this->db->prepare($sql);
$query->bind_param('ii', $userid,$bookid);
$query->execute();
$query->store_result();
$rows_found = $query->num_rows();
if(empty($rows_found)) {
$sql = "INSERT INTO favourite (user_id, book_id)
VALUES (?, ?)";
$query = $this->db->prepare($sql);
$query->bind_param('ii',$userid,$bookid);
$query->execute();
} else {
$sql = "DELETE FROM favourite WHERE user_id=? AND book_id =?";
$query = $this->db->prepare($sql);
$query->bind_param('ii',$userid,$bookid);
$query->execute();
}
}
}
books_controller.php
class Books extends Controller
{
function checkFav()
{
$checkFav_model = $this->loadModel('Books');
}
}
itemView.php
$(document).ready(function(){
$("#fav").click(function(){
$(this).toggleClass("btn-success");
book_id = $(fav).val(); // set the value of the button (book_id)
$.ajax({
type: 'POST',
url: '<?php echo URL; ?>books/checkFav', //location of query
data: {book_id:book_id}, //taken from value of button
success: function() {
$("div.addtofavs").slideToggle("slow"); //show div below button
}//end success
});//end ajax
});
});
按鈕HTML
<button id="fav" value="'.$book->id.'" type="button" class="btn btn-default"></button>
目前,當我按一下按鈕,並期待在控制檯中,我可以看到的帖子,但沒有被髮送到我的分貝。
任何意見或方向是讚賞,因爲我是相當新的MVC和JS。
不夠詳細的答案,所以我會添加評論我做了一個社交網站,它有一個「推薦」按鈕。與該按鈕有一個'推薦'類的點擊(刪除時再次點擊)我只是在jQuery的ajax設置一個標誌取決於.hasClass('推薦') – atmd
只有一個功能來檢查並插入或刪除 –