动态获取按钮ID

3

当按钮被点击时,我需要获取按钮的ID。

这是我的按钮代码,当条件为真时动态显示数据:

Twig:

  {% for usr in userstats %}
    {% if usr.condition == TRUE %} 
        <button type="submit" class="btn btn-success btn-xs  myOnButton.onclick = function(event){alert(event.currentTarget.id);} myOnButton">Allow</button> 

这是我的按钮使用Ajax的代码 ---

<script>
    $(".myOnButton").on('click', function () {
        if (confirm('{% trans %}Are you sure?{% endtrans %}')) {
            $('body').addClass('load');

            var url = '/hello/hello';
            // Submit data via AJAX
            var data = {};
            $.ajax({
                url: url,
                type: 'POST',
                success: function (data) {
                    // Redirect to view
                    url = '/hello';
                    location.href = url;
                }
            });
        }
        return false;
    });

为了更加清晰明确,假设我们有一列数据:(名称:Dell,公司ID:3001,地址:HelloDell,电话:07555,状态:True),另一列数据:(名称:Apple,公司ID:5001,地址:HelloApple,电话:07555,状态:True)。

那么当在twig文件中点击按钮时,如何获取公司ID呢?

有人知道如何解决这个问题吗?


为每个按钮添加函数 **<button onclick="show_companyid('3001')">Show</button>**。这里的公司ID将根据您的行而变化。 - Bugfixer
@Bugfixer,问题是我不知道公司的 ID 是什么,在我的代码中将显示所有可用的数据,所以假设当您点击一个名为“Dell”的按钮时,我需要获取哪个按钮被点击以及它的 ID。您能否友善地提供一个解决方案,谢谢 :) - Istiak Mahmood
1个回答

2

使用纯JS(无需框架),假设你有多个带有类myOnButton的按钮,你可以轻松地执行以下操作:

var buttonClickHandler = function(e){
  console.log(e.target.id);
}

var buttonList = document.getElementsByClassName('myOnButton');
buttonList.forEach(function(button){
  button.addEventListener('click', buttonClickHandler);
});

编辑1和编辑2:

我假设使用JQuery的相应代码将会是这样的:

$('.myOnButton').on('click', function(e){
  var buttonId = e.currentTarget.id;
  //start post request
  $.post('my/path/to/service.php', {id:buttonId}, function(data, err){
     //wait for response here
     console.log("my data yippii", JSON.stringify(data));
  })
});

PHP部分的service.php代码大致如下(我必须承认这不是我的强项)

//retrieve id
id = $_POST['id'];

现在您已经获得了ID,可以验证它并开始在数据库上进行SELECT或其他操作。

希望这有所帮助。


谢谢您的回答,现在在 PHP 中我该如何获取所选的 ID,您知道吗?这将解决我的问题,谢谢。 - Istiak Mahmood
我认为关于 PHP 的问题,你应该开一个新的帖子。我可以尝试帮忙,但这会混淆上下文。所以请开始一个新的问题,并将此作为第一部分或其他什么链接? - Max Bumaye
如果你想在PHP中使用你的id,那么请将target.id存储到JS变量中,然后通过AJAX传递到PHP。 - Bugfixer
@Bugfixer,您能提供一个例子吗? - Istiak Mahmood
我已经尝试简述一下,因为 PHP 部分非常简单。 - Max Bumaye

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接