Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite a todos,
Título: Puxar dados de linha da tabela html td em botão editar e jogar no option
Tenho uma tabela em html com 7 colunas das quais puxam informações do banco quando realizo uma busca.
No entanto, preciso editar os dados que tenho no banco e para isso preciso adicionar um botão editar em cada linha.
Para isso, adicionei mais uma coluna chamada Ações.
Nas ações, desejo colocar o Editar, porém seria interessante que eu tivesse o adicionar e excluir/inativar junto. Atualmente estas opções se encontram em outra page, meio bagunçado. Então para o usuário não ficar rodando de page em page, faz a busca e acessa outra page para editar os dados ou adicionar/inativar dados, preciso jogar estas ações na mesma page da busca!
Como eu consigo pegar os dados da linha específica <td> onde está o botão editar e permitir que o usuário possa editá-los?
OBS IMPORTANTE PARA SIMPLIFICAR, (acredito eu):
Tenho 6 select's e um campo text que são os headers da tabela, cada select é uma informação (editora, autor, tema, etc). E o text é o nome do arquivo.
Se eu conseguir clicar no botão editar e jogar os dados da linha a ser editada dentro dos select <option>, fica mais prático, pois dai é só eu pegar e selecionar outra informação naquele select e clicar em atualizar(botão que ainda nao existe) e ele atualiza aquele dado daquela linha, ou seja, edita a editora do meu arquivo, edita o autor OU OS AUTORES... Lembrando que, meu arquivo pode ter 1 editora apenas (1:N) e os demais campos podem ter 1 a 5 dados, pois são (N:N), ou seja... Um arquivo pode ter apenas 1 editora, porém pode ter 3 disciplinas, 2 autores, 5 palavras chaves...
Sendo assim, acredito que a forma mais fácil e inteligente de fazer esse editar arquivo, seria jogando os dados da linha de volta para o select, pois para inserir o arquivo no banco, todos os dados que realizo na busca, são inseridos através deste select que permite 1 a 5 informações onde são N:N.
Caso eu não tenha sido meio claro, me avisem =x
Pegue o ID do registro do registro e passe para a página de edição, na página de edição você resgata os dados do BD e verifica quantos registros retornam, assim saberá quantos combos precisará montar, ai basta fazer um verificação para já deixar selecionado o valor correto em cada combo.
Pegue o ID do registro do registro e passe para a página de edição, na página de edição você resgata os dados do BD e verifica quantos registros retornam, assim saberá quantos combos precisará montar, ai basta fazer um verificação para já deixar selecionado o valor correto em cada combo.
Não há uma página de edição separada.
Por exemplo, o usuário com permissão mais elevada, acessa a página onde os dados retornam com uma coluna a mais na tabela, esta é a coluna chamada Ações. Nesta coluna existe o botão Editar. Quando ele clica em editar, deveria jogar os dados daquela linha específica da tabela para os combobox.
Ou seja, cliquei no botão editar do arquivo ESerra.pdf, o autor é ESerra, a editora é iMasters e as disciplinas são PHP, CSS, JS, por exemplo.
Ao clicar no botão, estes dados devem ser adicionados nos combobox's existentes nesta mesma página. Tipo:
combobox-autor = $linha['id-autores'] //autores da tabela selecionada e tals.
A minha dificuldade é manipular estes dados de um retorno do banco para o elemento combobox
Bom, neste caso eu usaria a ajax para montar todo o formulário com os combos e já faria a inserção destas informações "prontas" nas página.
Bom, neste caso eu usaria a ajax para montar todo o formulário com os combos e já faria a inserção destas informações "prontas" nas página.
Boa noite amigo,
Apanhei feio pro ajax e acabei conseguindo fazer de outra forma, mais ou menos igual a dúvida do Beraldo la em 2008, rsrs. Dei uma analisada no tópico dele aqui = http://forum.imasters.com.br/topic/265567-resolvidomudar-o-valor-de-um-select-com-javascript/
E fiz da seguinte forma:
function retorna_combobox(dado) {
var combo = document.getElementById("selautor");
for (var i = 0; i < combo.options.length; i++){
if (combo.options[i].value == dado) {
combo.options[i].selected = "true";
break; //acho que vou ter que comentar pq eu terei um array(dado) AS VEZES
}
}
}
No botão ATUALIZAR (com exemplo apenas de autor AUT_ID):
<!-- Ações -->
<td>
<button type="button" name="ATUALIZAR" class="btn btn-info" onclick="retorna_combobox(<?=$linha["AUT_ID"]; ?>)" > Atualizar </button>
</td>
Ele consegue fazer o combobox receber o autor que eu quero! Porém, ele não mostra isso na página. Eu até pensei que não estava funcionando... Eu descobri que "funcionou" pelo seguinte motivo:
Eu clicava no botão atualizar e não dava nenhum erro, parecia tudo tão certo, pois ao fazer alert(); das informações, aparecia todos os dados corretos. Então eu peguei e cliquei em Atualizar e depois selecionei um autor nada a ver no meu combobox, ai ele mostra o autor que eu passei via Atualizar e o que eu selecionei manualmente.
Por exemplo, passei via atualizar retorna_combobox(Autor1); e apareceu la:
Autores:
Autor1, Autor2
OK, então a função realmente seleciona a informação dentro do combobox. Mas ela visualmente não mostra isso, porque ela fica apenas com o nome "Não Selecionado" por padrão do bootstrap-select que estou utilizando.
Se eu fizer o seguinte:
var comboNome = document.getElementById("selautor").selectedIndex;
if(comboNome < 0)
//então ele está Não Selecionado !!!
O problema é que, eu não consigo mostrar no combobox que ele está selecionado o Autor1 e/ou Autor2, Autor3....
Ele visualmente fica escrito Não Selecionado.
Mas como eu estou utilizando o JS para alterar o elemento option dele, não faz sentido ele não alterar visualmente o valor. O que pode estar errado?
Bom dia a todos,
Alguém tem mais ou menos idéia se é possível? Resumidamente de forma mais clara abaixo:
Tenho alguns combobox para o usuário selecionar algumas informações, onde alguns são apenas 1 campo a ser selecionado e outros podem ter até 5 dados selecionados.
Ele pode selecionar cada um e no final de tudo inserir a informação no banco, todas relacionadas. E eu listo em uma tabela estas informações.
Como faço para retornar a linha da tabela (ao clicar no botão editar) para retornar os dados de volta para o combobox?
A idéia é, ao clicar no botão editar, ele jogue os dados daquela linha da tabela para os combobox's novamente e ai basta ele alterar a informação do combobox que ele deseja alterar e clicar em atualizar para salvar a alteração.