Jquery 如何使用CakePHP和AJAX从表中的多个记录中删除单个记录
我正在尝试构建一个系统,在这个系统中,我可以使用AJAX将数据提交到数据库。我能做到这一点,而且效果非常好 然而,当我试图删除一条记录时,我正在努力做类似的事情。我对使用Ajax还不熟悉,尤其是CakePHP,我发现整个概念都非常强大。我可以使用纯HTML删除记录,将ID传递给控制器,然后重定向到原始页面。这正是我正在努力解决的Ajax问题,显然使用Ajax将是一个巨大的好处 这是我认为的代码:Jquery 如何使用CakePHP和AJAX从表中的多个记录中删除单个记录,jquery,cakephp-2.0,Jquery,Cakephp 2.0,我正在尝试构建一个系统,在这个系统中,我可以使用AJAX将数据提交到数据库。我能做到这一点,而且效果非常好 然而,当我试图删除一条记录时,我正在努力做类似的事情。我对使用Ajax还不熟悉,尤其是CakePHP,我发现整个概念都非常强大。我可以使用纯HTML删除记录,将ID传递给控制器,然后重定向到原始页面。这正是我正在努力解决的Ajax问题,显然使用Ajax将是一个巨大的好处 这是我认为的代码: <table> <tr> &
<table>
<tr>
<th>ID</th>
<th>Title</th>
<th>Content</th>
<th> </th>
</tr>
<?php foreach ($testing as $test) { ?>
<tr>
<td><?php echo $test['Testtable']['id']; ?></td>
<td><?php echo $test['Testtable']['title']; ?></td>
<td><?php echo $test['Testtable']['content']; ?></td>
<td><?php echo $this->Html->link('Delete', array('controller' => 'testing', 'action'=>'delete_ajax_data', $test['Testtable']['id']), null, 'Are you sure?' );?></td>
</tr>
<?php } ?>
</table>
这是我到目前为止为Ajax编写的代码:
$(document).ready(function(){
$('a.confirm_delete').click(function(event){
event.preventDefault();
$.ajax({
url:'/testing/delete_ajax_data',
type:'POST',
data: $("a").attr("href").serialize()
});
});
});
为这方面的任何帮助干杯,它开始让我感到压力大了
编辑:我使用的代码是错误的,我现在已经包含了正确的代码。但还是不行 我已经弄明白了。代码中有几个问题 第一部分在视图中。我没有使用CakePHP的链接生成器,而是使用了HTML链接:
<td><a href="id=<?php echo $test['Testtable']['id']; ?>" class="deleteajax">Delete</td>
新的Ajax代码使用GET而不是POST,它将我要删除的记录的ID作为ID变量返回,然后可以在控制器中使用,如下所示:
function delete_ajax_data() {
$this->autoRender = false;
$this->layout = 'ajax';
$id = $_GET['id'];
$this->loadModel('Testtable');
$this->Testtable->delete($id);
}
也许有一个比我做的更好的方法,但是对于我正在做的事情来说,这非常有效
$('a.deleteajax').click(function(event){
event.preventDefault();
var answer = confirm("Delete this record?")
if (answer){
$.ajax({
url:'/testing/delete_ajax_data/',
type:'GET',
data: $(this).attr("href")
});
}
return false;
});
function delete_ajax_data() {
$this->autoRender = false;
$this->layout = 'ajax';
$id = $_GET['id'];
$this->loadModel('Testtable');
$this->Testtable->delete($id);
}