我试图通过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获得它。
您需要以某种方式在DOM
中存储值以供http
请求访问。还要注意,在document
ids
。 试试这个:
$('.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>
根据你打算支持的设备/浏览器,你可以在你的锚标记中添加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');
您将能够在此时将其添加到您发布的数据中。