变量不会传递给Ajax调用:undefined变量

时间:2013-10-24 21:17:01

标签: javascript ajax

我从最初的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;
    });
});

2 个答案:

答案 0 :(得分:1)

您的问题似乎是数据属性应该是data-uid =“somevalue”<a href="#" class="like" id="1234" data-uid="7687687">Like</a>

检查这个小提琴to see if this solves your main problem

答案 1 :(得分:1)

代码中的

问题:

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

你试图将this包装到jquery对象中,但是在这个上下文中它是按钮对象,然后你试图获取未分配的东西

你应该使用:

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

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