$_POST 不会获取 jquery 设置的属性

$_POST won't fetch attribute set by jquery

我有一个 HTML link 元素:

    <a href='#' class='editUsrProfile' data-type='text' data-pk='' data-url='file.php'></a>

我将 data-pk 属性设置为 Jquery:

    $('.editUsrProfile').attr('data-pk', usr);

我和console.log确认是否设置了data-pk,没问题。

但在我的 php 脚本中,我检查 $_POST['pk'] 时什么也没得到。
其他静态的帖子,如姓名等,效果很好。

那么,为什么 $_POST 无法读取 Jquery 设置的属性,我该如何解决这个问题?

更新
我使用 "Bootstrap Editable" 将数据发送到 php 文件。
问题是我在设置 data-pk 之前启用了 editable
只是我将事件更改为首先将 data-pk 设置为 Jquery。
然后我 运行 editable 插件:

$('.editUsrProfile').attr('data-pk', usr);
$('.editUsrProfile').editable({});

为了在 php 中获得 $_POST 值,您需要使用 AJAX(您可以使用 $.post jquery 函数):像这样:

$('.editUsrProfile').click(function() {
   var self = $(this);
   $.post(self.data('url'), self.data(), function(response) {
      // do something with response from server.
   });
   return false;
});

并不是说这也会将 url 作为 $_POST 值发送。

由于您的 data-pk 是在页面加载时设置的,因此您也在初始化可在页面加载时编辑。但是你正在动态地改变 data-pk 所以你需要更新你的可编辑参数,比如

$('.editUsrProfile').editable({
    params: function(params) {
        params.pk = usr;// or you can try $(this).attr('data-pk') or $('.editUsrProfile').attr('data-pk') whichever works for you
        return params;
    }
)
var pk = $('.editUsrProfile').attr('data-pk');

// URL : link file handle:
// example: localhost/getpost.php

 $.post(URL, {pd: pk }, function(result) {
        //Response from server
 });