Lavorando su un progettino ho trovato una situazione "strana", almeno per me.

Su una finestra ci sono N bottoni diversi
codice:
 <button value="Primo contatto" id="getselected" type="button" class="btn btn-primary">Primo contatto</button>
      <button value="Fatto sopralluogo"  type="button" class="btn btn-primary">Fatto sopralluogo</button>
Dentro un componente di terzi c'è questo (praticamente nel file HTML principale - che contiene i bottoni - c'è un include a un file php il quale, a sua volta, aggiunge questo pezzo di codice ad un oggetto griglia)

codice:
jQuery("#getselected").click(function(){
    var selr = jQuery('#grid').jqGrid('getGridParam','selrow');
    if(selr) 
 {
 
   var valore = $(this).attr('value');
 alert(this.id+"  ciaaooo "+selr+"     "+valore);
 
 elenco="id="+selr+"&testo=ciao&note=pippo";
 
   $.ajax({
    url : 'dati2.php',
    data : elenco, 
 dataType : 'html',
    complete: function (data) {
 alert("successo");
         }
    
});
In sostanza il primo bottone, con id=getselected, funziona.
Cliccandolo viene chiamata la funzione la quale mostra il valore (ho tagliato le parti non importanti)

Gli altri bottoni, invece, non possono avere ovviamente il medesimo id, e quindi non chiamano la funzione.

Come si può fare?

Riassumendo: dati N bottoni uguali (si differenziano per delle proprietà "nascoste"), cliccandoli va richiamato lo stesso script php prendendo dinamicamente i valori.