尝试使用JQuery / Ajax函数删除记录,以便每次删除时都不会重新加载我的页面。我有一个Movie.php,它用作Movie的模型对象,在这里我放置了基于movieId参数删除的delete_movie函数。我试图在我的Jquery调用中调用它,但是它似乎没有调用我的函数delete_movie(movieId)。
这是我的Movie.php
<?php
class Movie {
public static function delete_movie($movieId) {
$db = Database::getDB();
$query = 'DELETE FROM MOVIE
WHERE movieId = :movieId';
$statement = $db->prepare($query);
$statement->bindValue(':movieId', $movieId);
$statement->execute();
$statement->closeCursor();
}
}
?>
movielist.php
<tr class="delete_mem<?php echo $movie['movieId'];?>">
<td><?php echo $movie['title']; ?> </td>
<td><?php echo $movie['releaseYear']; ?></td>
<td><?php echo $movie['imdbId']; ?></td>
<td><?php echo $movie['description']; ?></td>
<td><button type="submit" class="btn btn-danger" id="<?php echo $movie['movieId'];?>">Delete</button></td>
</tr>
JQScript.js
$(document).ready(function() {
$('.btn-danger').click(function() {
var id = $(this).attr("id");
if (confirm("Are you sure you want to delete this?")) {
$.ajax({
type: "POST",
url: "model/Movie.php",
data: {
delete_movie : id
},
success: function() {
alert('Success deletion!');
}
});
} else {
return false;
}
});
});
最佳答案
当PHP运行movie.php
时,它只是在处理类。文件中的PHP实际上并没有说要做什么。
如果您不需要课程,只需将movie.php
更改为
$db = Database::getDB();
$query = 'DELETE FROM MOVIE
WHERE movieId = :movieId';
$statement = $db->prepare($query);
$statement->bindValue(':movieId', $movieId);
$statement->execute();
$statement->closeCursor();
如果文件中还有更多内容,或者您必须使用类,则需要一个控制器来接收URL POST,然后调用
Movie::delete_movie($id)
。您似乎正在遵循MVC模式,您拥有的模型和视图,并添加此控制器来控制操作,这将是最后一部分。
关于javascript - 如何使用Ajax和JQuery调用带参数的php函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49091771/