0

假设我有以下内容,并且我动态获取了 ID。

<div class="search_results">
<p>user 1 <a href="phpfile.php?id=3">Add</a></p>
<p>user 1 <a href="phpfile.php?id=4">Add</a></p>
</div>

如果我不使用 ajax,我可以在phpfile.phpwith中捕获传递的值$_GET['id'],但是如何将它与 jquery 一起使用?

$.ajax({
    type: 'GET',
    url: 'phpfile.php', // how to add those values here?
    success: function(data) {
        // do smth
    }
});
4

3 回答 3

2

您需要添加数据参数:

url: 'phpfile.php',
data: {id: 3}

如果您必须从显示的 HTML 中获取 id:

$('.search_results a').click(function (e) {
  e.preventDefault();
  $.ajax({
    type: 'GET',
    url: 'phpfile.php',
    data: {id: $(this).attr('href').match(/id=(\d*)/)[1]},
    success: function (data) {
        // do something
    }
  });
});
于 2013-07-25T17:31:41.593 回答
0

HTML

为方便获取 ID,请将其放入单独的属性中,以便 JavaScript/jQuery 可以直接读取。如果这是不可能的,那么保持你的 URI 在href.

<div class="search_results">
    <p>user 3 <a href="phpfile.php" data-user-id="3">Add</a></p>
    <p>user 4 <a href="phpfile.php" data-user-id="4">Add</a></p>
</div>

JavaScript

在这里,我使用datajQuery ajax 对象的属性来发送id参数。如您所见,该值是从data-user-idHTML 元素的属性中获取的。

e.preventDefault()是为了防止浏览器默认的跟随链接到目标的动作href

$('a[data-user-id]').click(function (e) {
    'use strict';

    e.preventDefault();
    $.ajax({
        type: 'GET',
        url: $(this).prop('href'),
        data: {
            id: $(this).attr('data-user-id')
        },
        success: function (data) {
            // do something
        }
    });
});

或者,您可以使用button元素。

于 2013-07-25T17:37:48.783 回答
0

url: 'phpfile.php', data: data,

只需从服务器端代码中的数据中检索值

您可以使用以下行将表单中的所有数据转换为 ajax

var data = $('form').serialize();

仅当您使用 html 表单传递数据时,才能应用上述方法

于 2013-07-25T17:42:55.257 回答