我从最初的OP中编辑了这个问题,以便更好地代表我的问题。
如何使用AJAX传递变量data-uid
?
现在变量没有通过。
var uid = $(this).data("uid");
不起作用=未定义
var uid = '199';
获得通过。的工作原理。
是否有可能有:var uid = $uid;
?
HTML
<form>
<fieldset>
<textarea id="post_form" type="text" data-uid="<?php echo $uid ?>"/></textarea>
<button type="submit" id="add" value="Update" name="submit" />OK</button>
</fieldset>
</form>
JS
$(function() {
$("#add").click(function() {
var boxval = $("#post_form").val();
var uid = $(this).data("uid"); // this needs to be changed
var dataString = 'post_form=' + boxval + '&uid=' + uid;
if (boxval == '') {
return false;
} else {
$.ajax({
type: "POST",
$.ajax({
type: "POST",
url: "add.php",
data: dataString,
cache: false,
success: function(html) {
parent.html(html);
}
});
return false;
});
});
答案 0 :(得分:1)
您的问题似乎是数据属性应该是data-uid =“somevalue”<a href="#" class="like" id="1234" data-uid="7687687">Like</a>
。
答案 1 :(得分:1)
问题:
var uid = $(this).data("uid");
你试图将this
包装到jquery对象中,但是在这个上下文中它是按钮对象,然后你试图获取未分配的东西
var uid = $('#post_form').attr('data-uid');
或者,您可以添加<input type="hidden" name=... value=...
并从中获取ID,这是更通用的方式