使用ajax处理来自生成列表的请求

时间:2016-03-11 15:21:58

标签: php jquery ajax

我有一个通过PHP循环构建的数据库中的记录列表。 问题是,我需要一种删除记录的方法(不刷新页面会是最好的)但是我很难搞清楚如何做到这一点。

到目前为止,我已经有了一个跨度(使用bootstrap,所以它是一个glyphicon图标(一个X)) - 用户应该单击此按钮删除特定记录。问题是当单击此按钮时,它会将当前表的所有唯一ID发送到ajax脚本,这显然不是很好。

以下是我所拥有的: 生成的记录:

while($row = $ret2->fetchArray(SQLITE3_ASSOC) ){
            echo '<tr>';
                echo '<th>#</th>';
                echo '<th>'.$row['type'].'</th>';
                echo '<th>'.$row['func'].'</th>';
                echo '<th>'.$row['trg'].'</th>';
                echo '<th>
                <span id="deleteRecordSpan" style="cursor:pointer" class="remove glyphicon glyphicon-remove">'.$row['uniqueID'].'</span>
                </th>';
            echo '</tr>';
            $loop++;
        }

到ajax脚本:

<script>
        $(document).ready(function() {
           $('.remove').click(function() {
                var input = $('.remove').text();
                $.ajax({ // create an AJAX call...
                    data: {
                        uniqueid: input,
                    },
                    type: 'POST', // GET or POST from the form
                    url: './ajax/deleteRecord.php', // the file to call from the form
                    success: function(response) { // on success..
                       show10();
                       allToday();
                   }
               });
            });
        });
        </script>

span的内容只包含与其内部关联的UniqueID。

我正在努力寻找一种方法来仅发送被点击到ajax脚本中删除的特定UniqueID。

以下是发生的事情:

UniqueID | Type     | Func | otherID |
500      | Computer | Full | 123     | X
557      | Computer | Full | 125     | X
654      | Computer | Full | 12564   | X

如果点击上表中的任何一个X,它会将500557654发送到ajax脚本,当我需要它时只发送与X相关联的ID。

1 个答案:

答案 0 :(得分:1)

当您使用选择器$('.remove')时,jQuery将选择包含类remove的每个元素,在您的情况下选择所有remove跨度。

input = $('.remove').text()更改为input = $(this).text()

此外,您可以将属性分配给span并从中获取ID:

在你的PHP中:

<span id="deleteRecordSpan" data-uid="'.$row['uniqueID'].'" style="cursor:pointer" class="remove glyphicon glyphicon-remove">'.$row['uniqueID'].'</span>

然后在你的javascript中:

var input = $(this).data('uid');

所以你不需要使用纯文本。