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.