0

我已经从原始 OP 中编辑了这个问题,以更好地代表我的问题。

如何data-uid使用 AJAX 传递变量?

现在变量没有通过。

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;
    });
});
4

2 回答 2

1

看起来您的问题与应该是 data-uid="somevalue" 的数据属性有关<a href="#" class="like" id="1234" data-uid="7687687">Like</a>

检查这个小提琴,看看这是否解决了你的主要问题

于 2013-10-24T21:32:17.767 回答
1

您的代码中的问题:

var uid = $(this).data("uid");

您正在尝试包装this到 jquery 对象中,但在此上下文中它是按钮对象,然后您正在尝试从中获取未分配的内容

你应该使用:

var uid = $('#post_form').attr('data-uid');

或者,您可以从中添加<input type="hidden" name=... value=...和获取 id,这是更通用的方式

于 2013-10-25T00:01:04.117 回答