当按下Delete按钮时,我试图使用AJAX / jQuery删除我的MYSQL数据库中的一行。我正在使用Zend Framework 1.12。
直到我的代码的alert(del_id)部分 正常工作:当我按下删除按钮时,显示一个匹配id的窗口。
但是删除页面和我的数据库中的行的部分不起作用。有人能告诉我这个问题吗?
另外我对使用$ .ajax()和Zend有一些疑问:是否正确放入url我删除操作的视图脚本的路径?这样做会在我的控制器上调用我的deleteAction()函数吗?
这是使用java脚本的布局:
<!-- application/views/scripts/users-data/adminpage.phtml -->
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(
function(){
$(".delete_class").click(
function(){
var del_id = $(this).attr('id');
var rowElement = $(this).parent().parent();
alert(del_id);
$.ajax({type:'POST',
url:'/users-data/delete.phtml',
data: {'delete_id':del_id},
success:function(data) {
if(data=="YES") {
rowElement.fadeOut().remove();
alert("success");
}else { alert("erro");
}}
});
});
});
</script>
</head>
<body>
<center>
<?php
echo "Users List";
?>
<table border="1">
<tr>
<th>Name</th>
<th>Email</th>
</tr>
<?php foreach($this->entries as $entry) : ?>
<tr>
<td><?php echo $entry->name;?></td>
<td><?php echo $entry->email;?></td>
<td><?php echo $entry->id;?></td>
<td> <button id="<?php echo $entry->id; ?>" class="delete_class"> Delete</button></td>
</tr>
<?php endforeach; ?>
</table>
这是控制器中的代码:
我测试并使用过的deleteUser()函数。
public function deleteAction()
{
//$id = $_POST['delete_id'];
$request = $this->getRequest();
$id= $request->getPost('delete_id');
$mapper = new Application_Model_UsersDataMapper();
$mapper->deleteUser($id);
}
答案 0 :(得分:0)
我可以找出问题所在。想象中的问题是网址。
我替换了
url:'/users-data/delete.phtml',
通过
url:"<?php echo $this->url(array('controller' => 'users-data', 'action' => 'delete')); ?>",
并且如果我放了:data!=“YES”。