【问题标题】:Why i can't get id value from button to send with my ajax jquery为什么我无法从按钮获取 id 值以使用我的 ajax jquery 发送
【发布时间】:2018-09-09 01:33:27
【问题描述】:

我不知道我的脚本有什么问题,但是脚本无法获取我的按钮的 id 值。实际上它只获得第一个 ID,但对于第二个等仍显示为第一个 ID。这是我的脚本

$('#list').on('click','#ed', function(){
    var id = $(this).attr("value");

    $.ajax({
        url: 'template/edit.php?id='+id,
        type: 'get',
        data: {ed: id}
    })
    .done(function(fil) {
        $('#modal').modal('show');
        $('#plc_form').html(fil);
    })
    .fail(function() {
        console.log("error");
    });
});

这是我的按钮脚本

<button id="ed" value="<?php echo $row['0']?>" class="btn btn-warning">Edit</button>

我使用 php 来填充按钮值并且它可以工作,但是当我使用我的 ajax 发送值来处理服务器时,它总是只获得第一个 id。

【问题讨论】:

  • 您是否有多个带有id="ed" 的按钮? ID 应该是唯一的,请改用一个类。
  • 你为什么同时发送id='+iddata: {ed: id}的id?
  • 你的问题比较混乱,是要按钮的ID还是按钮的值?使用$(this).val() 获取值。
  • 使用查看源代码检查 HTML 以确保所有按钮具有不同的值。也许问题出在创建 HTML 的 PHP 中。
  • @Barmar - 我只是想问how many of these buttons to you have...

标签: php jquery ajax button


【解决方案1】:

问题出在你的第一行:

$('#list').on('click','#ed', function(){

您已经为 jQuery 的 on() 方法指定了可选的选择器参数。这将过滤哪些元素正在侦听单击事件,在您的情况下,它仅限于 ID 为 #ed 的按钮。

也只是一种预感,但是由于您使用 php 发布了您的 html,我猜测以下行:

<button id="ed" value="<?php echo $row['0']?>" class="btn btn-warning">Edit</button>

在循环内?您可能希望避免在同一页面上创建多个具有相同 ID 的元素。在此处查看此答案:https://stackoverflow.com/a/4789863/9560897

编辑:根据 OP 的评论 - “ed”应该是 name 属性而不是 id

最好用你的按钮指定一个类,并使用该类作为你的点击方法的选择器,如下所示:

<button name="ed" value="<?php echo $row['0']?>" class="my-btn-class btn btn-warning">Edit</button>

$('#list').on('click', '.my-btn-class', function(){

【讨论】:

  • 感谢您的回答。我按照你的方法用类切换了我的 ID,但它仍然不起作用。我检查了 PHP 端,我认为有问题,但我不知道。我用这个方法来获取值$id = isset($_GET['ed']) &amp;&amp; $_GET['ed'];可能有错误
  • 我已更新我的答案以包含按钮的name 属性。这将提交由“ed”键入的按钮的value,并且应该在$_GET 中可用。
猜你喜欢
  • 2015-06-17
  • 2019-02-26
  • 2016-03-17
  • 2018-02-09
  • 2015-08-28
  • 2012-06-14
  • 2016-12-17
  • 1970-01-01
  • 2011-02-21
相关资源
最近更新 更多