在AJAX POST过程中获取变量


Getting Variables on AJAX POST Process

我试图通过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');

您将能够在此时将其添加到您发布的数据中。