我试图通过AJAX发布一些内容但有一点我无法解决的问题。
我有一个PHP foreach循环和删除功能。基本上,我想用AJAX POST请求删除此foreach中的一些项目。我可以制作POST但不能获得ID值。 ID值对我来说太重要了,因为系统应该知道哪些数据会被删除。
您可以在下面找到我的PHP代码:
<tbody>
<?php foreach($contactMessages as $c) { ?>
<tr>
<td><?php echo $c['name']; ?></td>
<td><?php echo $c['subject']; ?></td>
<td><a data-toggle="modal" data-target="#delete" id="delete"></td>
</tr>
<?php }?>
</tbody>
这是我的JavaScript代码:
<script type="text/javascript">
$('#delete').click(function()
{
$.ajax({
url: '<?php echo site_url('admin/messages/delete/'); ?>',
type: 'POST',
data: {'submit':true},
});
});
</script>
正如我所说,我必须POST
唯一ID,但无法通过JavaScript找到它。提前谢谢。
答案 0 :(得分:1)
根据您打算支持的设备/浏览器,您可以在锚标记中添加HTML5数据属性。
<a data-toggle="modal" data-target="#delete" data-contact-message-id="<?php echo $c['id']; ?>">
从锚中删除id,因为它在DOM中是唯一的。
然后在你的javascript中,就在ajax调用之前,从元素中检索值。
var id = $(this).data('contact-message-id');
您可以在此时将其添加到您发布的数据中。
答案 1 :(得分:1)
您需要在DOM
中存储要为http
请求访问的值。另请注意,ids
document
具有相同名称
试试这个:
$('.delete').click(function() {
var id = $(this).attr('data-id');
$.ajax({
url: '<?php echo site_url('admin/messages/delete/'); ?>',
type: 'POST',
data: {
'submit': true,
'id':id
},
});
});
<tbody>
<?php foreach($contactMessages as $c) { ?>
<tr>
<td>
<?php echo $c['name']; ?>
</td>
<td>
<?php echo $c['subject']; ?>
</td>
<td>
<a data-toggle="modal" data-target="#delete" class='delete' data-id='<?php echo $c['id']; ?>'>
</td>
</tr>
<?php }?>
</tbody>