Pick up button id

1

How can I get the button id pressed, since the buttons are automatically generated with php and do not have their id set, I need the button id to do a SQL query with php,

Code that generates the button:

 while ($linha = mysqli_fetch_array($ids))
              {
                  $query = ("select * from componentes where id_principal = ".$linha[0]." ");
                  $componentes = mysqli_query($con,$query);
                  $resultado = mysqli_fetch_row($componentes);

                  $id_componente = $resultado[0];
                  $codigo = $resultado[2];
                  $nome = $resultado[3];
                  $entrada = $resultado[4];
                  $saida = $resultado[5];
                  $f = $resultado[6];
                  $m = $resultado[7];
                  $g = $resultado[8];
                  $gg = $resultado[9];
                  $total = ($f + $m + $g + $gg);

                  print "<tr>";
                  // ESSE É O BOTÃO QUE PRECISO PEGAR O ID QUANDO ELE SER PRESSIONADO
                  print "<td><button id=".$id_componente." type='submit' class='btn btn-success'>".$codigo."</td>";
    
asked by anonymous 08.12.2016 / 12:57

3 answers

3

You can use a class of generated elements, for example

  

class = 'btn btn-success test '

and then:

$(".teste").click(function()
{
    var id = $(this).attr('id');
});
    
08.12.2016 / 13:02
2

Add a class and place the event in it to get the id of the button:

<?
 while ($linha = mysqli_fetch_array($ids))
              {
                  $query = ("select * from componentes where id_principal = ".$linha[0]." ");
                  $componentes = mysqli_query($con,$query);
                  $resultado = mysqli_fetch_row($componentes);

                  $id_componente = $resultado[0];
                  $codigo = $resultado[2];
                  $nome = $resultado[3];
                  $entrada = $resultado[4];
                  $saida = $resultado[5];
                  $f = $resultado[6];
                  $m = $resultado[7];
                  $g = $resultado[8];
                  $gg = $resultado[9];
                  $total = ($f + $m + $g + $gg);

                  print "<tr>";
                  // ESSE É O BOTÃO QUE PRECISO PEGAR O ID QUANDO ELE SER PRESSIONADO
                  print "<td><button id=".$id_componente." type='submit' class='btn btn-success bt-componente'>".$codigo."</td>";

?>

<script>
    $(function(){
        $('.bt-componente').click(function(){
             var id = $(this).attr('id'); //aqui você tem o id para usar em um ajax ou algo do tipo...
             $.ajax({
                 url: "urlquefaraaconsulta",
                 type: "post", //opcional, padrão get
                 data: {id: id},
                 success: function(data){
                     $('table').after(data); //exemplo de como inserir o conetúdo retornado
                 }
             });
        });
    });
</script>

Another alternative would be to redirect the user directly to a screen where he will query using id as a parameter:

<script>
$(function(){
    $('.bt-componente').click(function(){
         var id = $(this).attr('id');
         window.location.href = "minhaurl?id=" + id;
    });
});
</script>
                                    
08.12.2016 / 13:01
1

You can use the attr function of jQuery to get the attribute value:

$("button").click(function(){
  console.log($(this).attr("id"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><buttonid="botao1">Botão</button>
<button id="botao2">Botão</button>
    
08.12.2016 / 13:02