【问题标题】:Send clicked button ID AJAX发送点击按钮 ID AJAX
【发布时间】:2014-04-11 20:41:42
【问题描述】:

我想将 series["id"+i] 发送到 write.php。 (此代码在另一个 ajax 请求中。) 有什么想法吗?

series = new Object();
$(xml_node).find("Series").each(function (i) {
    series["id" + i] = $(this).find("seriesid").text();
    series["name" + i] = $(this).find("SeriesName").text();
    series["banner" + i] = $(this).find("banner").text();
    table += '<tr<td>' + series["banner" + i] + '</td>' + '<td>' + series["name" + i] +
        '</td>' + '<td>' + '<button>Add show</button>' + '</td>' + '</tr>';
});
$('button').click(function addseries() {
    $.ajax({
        type: "POST",
        url: 'write.php',
        data: series["id" + i],
        success: function (data) {
            console.log(data);
        }
    });
});

【问题讨论】:

  • 好吧,i 没有在 addseries 中定义。你希望它指的是什么?

标签: php jquery ajax button


【解决方案1】:
...'<button data-id="' + i +'">Add show</button>'..


$('button').click(function addseries(e){
   var i = $(e.currentTarget).attr('data-id');
   $.ajax({
      type: "POST",
     url: 'write.php',
     data: i,
     success: function(data) {
     console.log(data);
   }
}); 

更新

data: {id: i}

data: 'id=' + i

【讨论】:

  • 感谢您的回答,但 PHP 文件返回一个空数组
  • 这是我的错。将data: i 替换为data: {id: i}data: 'id=' + i,您还可以在JS 代码中使用console.log:console.log(i) 查看i 变量的值
【解决方案2】:

你可以得到触发ajax调用的事件,

例如

$('button').click(function addseries(e){
console.log($(e.target));
}

其中 $(e.target) 是触发调用的 jQuery 对象。

你也可以使用$(this)(指调用函数的jQuery对象)。

所以在我们的例子中,

$('button').click(function addseries(e){
console.log( $(this).attr('id') );
});

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 2014-02-04
    • 2015-02-06
    • 2012-11-23
    • 2023-03-14
    • 2016-02-03
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多