0

私の問題をよりよく表すために、元のOPからこの質問を編集しました。

data-uidAJAXで変数を渡すにはどうすればよいですか?

現在、変数は渡されません。

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" である必要がある data 属性にあるよう<a href="#" class="like" id="1234" data-uid="7687687">Like</a>です。

このフィドルをチェックして、これが主な問題を解決するかどうかを確認してください

于 2013-10-24T21:32:17.767 に答える
1

あなたのコードの問題:

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

jqueryオブジェクトにラップしようとしていますthisが、このコンテキストではボタンオブジェクトであり、そこから割り当てられていないものを取得しようとしています.

次を使用する必要があります。

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

または、そこからIDを追加<input type="hidden" name=... value=...して取得できます。これはより一般的な方法です

于 2013-10-25T00:01:04.117 に答える