$_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
});
我有一个 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
});