2013-10-24 58 views
0

我已經從原始的OP中編輯了這個問題,以更好地表示我的問題。變量不會傳遞給Ajax調用:undefined變量

如何將變量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; 
    }); 
}); 
+3

就可以顯示相關的HTML? – karthikr

+0

'.like'元素看起來像什麼? – scrappedcola

+3

你正在執行POST而不是GET,使用get和'url:「delete.php?」+ dataString' –

回答

1

問題在你的代碼:

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

你想換this到jQuery對象,但正是在這樣的背景下按鈕的對象,那麼你」重新嘗試獲取未分配的東西

你應該使用:

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

或者,您可以添加<input type="hidden" name=... value=...並從它那裏得到ID,這是更普遍的方式

1

看起來你的問題是,應該是數據的uid = 「someValue中」 <a href="#" class="like" id="1234" data-uid="7687687">Like</a>的數據屬性。

檢查這個小提琴to see if this solves your main problem

+0

+1感謝您的回覆。我的問題。當頁面刷新'data-id =「<?php echo $ uid?>'回顯正確的uid。問題是在AJAX回調期間:添加新項目時,'data-id'未定義。 –

+0

什麼是html參數返回?一個新的元素? – McRui