Capturar item da tabela html com js

Boa noite devs… tenho uma tabela onde mostra informações de um colaborador. o que não estou conseguindo e recuperar o id de um item da tabela para possivel alteração pelo usuario

foreach ($array as $key) {

   $obj = $key;
   echo "<tr style:border:1px solid><td>".$obj->GetId()."</td>";
   echo "<td>".$obj->GetNomePessoa()."</td>";
   echo "<td>".$obj->GetDocumento()."</td>";
   echo "<td><input type='button' value='Editar' class='btn' onclick='editarColaborador()'></td>";
   echo "<td><input type='button' value='Excluir' class='btn red lighten-1'></td></tr>";
   }

esse é o JS externo que estou utilizadno:

function editarColaborador(){
console.log("clicado");

}

alguem da uma ajuda aii

Geralmente se passa o id para a função assim:

"...onclick='editarColaborador({$obj->GetId()})'..."

E na função js…

function editarColaborador(id){
    console.log("clicado", id);
}

Veja o que sai no console…

fiz a alteração, mais esta aparecendo um erro nesta linha:

  echo "<td><input type='button' value='Editar' class='btn' onclick='editarColaborador({$obj->GetNomePessoa()})'></td>";

 Uncaught SyntaxError: missing ) after argument list

Solução foi fazer assim na linha:

echo "<td><input type='button' value='Editar' class='btn' onclick='editarColaborador(\"{$obj->GetNomePessoa()}\")'></td>";

Pra vc não ficar boiando…

Numeros:

"...onclick='editarColaborador({$obj->GetId()})'..."

Texto:

"...onclick='editarColaborador(\"{$obj->GetNomePessoa()}\")'..."

E pra melhorar a leitura e poder usar aspas e variáveis tranquilamente: pesquise sobre NOWDOC e HEREDOC no php:

$obj = $key;
$html =<<<HTML
    <tr style="border:1px solid"><td>{$obj->GetId()}</td>
    <td>{$obj->GetNomePessoa()}</td>
    <td>{$obj->GetDocumento()}</td>
    <td><input type="button" value="Editar" class="btn" onclick="editarColaborador('{$obj->GetNomePessoa()}')"></td>
    <td><input type="button" value="Excluir" class="btn red lighten-1"></td></tr>
HTML;
echo $html;

Viu a diferença? Percebeu como melhora a leitura do código sem tanto echo e sem tanta aspas?

Uma atenção importante ao usar esse recurso, o HTML; no final deve obrigatoriamente ser o primeiro caractere da linha, não pode conter espaços na frente… apenas coloquei aqui pra não sair da formatação do guj… então se vc tem casos de muita identação por exemplo:

nivel 1
    nivel 2
        nivel 3
            $html =<<<HTML
                <!-- seu codigo html aqui dentro... -->
HTML;
        fim nivel 3
    fim nivel 2
fim nivel 1

Percebeu? se liga nisso, espero ter ajudado e boa sorte!

2 curtidas

Realmente amigo, a identificação das tags do html fica bem mais legivel, e a do proprio php tbm.
Meus formularios ficam bem poluidos com o php ao meio.