Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DougCoder

Pegar ID da linha(while) na mesma página, no mesmo form.

Recommended Posts

Boa noite a todos,

 

Parece ser algo fácil e foi assim que eu pensei e deixei meio que pra depois e depois... Mas estou com uma dificuldade enorme, acredito que por ser da forma que programei a página. Veja bem:

 

Imagem 1:

https://uploaddeimagens.com.br/images/000/612/454/original/p1.jpg?1462144558

 

Na imagem 1, tenho o ID do arquivo (na coluna do autor, apenas para visualizar mesmo), no caso, o arquivo ("OPA") da primeira linha, possui ID 69. e o segundo arquivo, possui ID 73. E por ai vai... No meu código tenho o seguinte:

<td>                    
    <?php echo $linha["ARQ_ID"]; ?>
    <input type="hidden" name="myhid" value="<?php echo $linha['ARQ_ID']; ?>">
    <strong><?php echo $linha["AUT_NOME"]; ?></strong> <br><br>                  
    <button type="submit" class="btn-sm btn-default" value="<?=$linha['ARQ_ID'];?>" data-toggle="modal" name="alt-autor" id="alt-autor" data-target="#modal-autor"  >Editar</button>                                                             
</td> 

Acontece que, desta forma, eu passo apenas o ID $linha['ARQ_ID'], do último arquivo da página. Por exemplo, se tenho 5 arquivos por paginação, quando clico em Editar, ele passa o valor do ID do arquivo 5 da página 1, por exemplo. Eu preciso pegar o ID da linha onde cliquei.

 

O <button> não consegue passar o value para outra página, da undefined index alt-autor. Eu fiz várias modificações e quando não da undefined, fica em branco ou quando passa um parâmetro... Ele passa sempre o último do while de busca da tabela.

 

OBS: Eu já tive esta dificuldade e eu consegui resolvê-la adicionando o button que está no código acima com o value tudo mais ou menos do jeito que está, porém ele não puxava um modal, testei ele de várias formas e não deu certo...

 

OBS 2: O ID do autor eu não passo pelo botão Editar. Eu não preciso passá-lo na verdade... Eu preciso pegar o ID do novo autor, que eu pego quando abre o modal ao clicar em editar, favor ignorar a OBS da imagem 1 onde informo que o id do autor passa, na verdade eu não puxo o id do autor da tabela, pois não precisa!

 

Imagem 2:

https://uploaddeimagens.com.br/images/000/612/455/original/p2.jpg?1462144648

 

Na imagem 2, é um outro probleminha... Eu não sei porque ele inventa de passar a página se eu clicar em qualquer parte do modal, ou fundo do modal, exceto os botões e combobox. Por exemplo, se eu clicar no nome dos autores que está no select do modal, eu seleciono normal, se eu clicar em Editar ele puxa um action normal, se eu clicar em Fechar Editar, ele fecha, mas se eu clicar no fundo branco ou no fundo opaco, ele mostra que vai para pagina=2. WTF? Não fiz nenhum .js pra isso Oo

 

Imagem 3 (outra forma desejável):

https://uploaddeimagens.com.br/images/000/612/456/original/p3.jpg?1462144652

 

Na imagem 3, é a forma que eu "imaginava" que conseguiria fazer, é a "forma certa" vamos dizer assim... Para não ficar essa coisa horrível de 1 botão em cada campo, eu clicava na ação a ser feita, no caso atualizar, e ai montava minha página de edição DAQUELA LINHA ESPECÍFICA, ou seja, daquele arquivo específico! Porém não consegui puxar os dados, é praticamente quase o mesmo problema da imagem 1.

 

 

OBS IMPORTANTE:

Eu uso um <form> somente para toda a minha página! Imagino que não seja o correto, mas não foi possível eu atribuir tantas passagens de parâmetros com vários forms.

 

Eu não conseguia manipular as informações na minha página principal e muito menos nas outras páginas quando usava vários forms... Pois eu precisava abrir a página de visualização de pdf, editar, cadastrar, excluir, relatórios, etc, etc... Então eu fiz o seguinte:

function add_action() {   
    document.getElementById("form-busca").action = "visualiza_p.php";
    document.getElementById("form-busca").submit();  
}   

function add_edit() {
    document.getElementById("form-busca").action = "editar/editar_autor_arquivo.php";
    document.getElementById("form-busca").submit();
 }

E ai no botão onde eu quero passar as informações do meu <form> principal para outra página, eu apenas puxo a função que atribui ao meu form um action e então eu o executo. =)

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal...

 

Elaborei uma Gambi (minha especialidade) que quaaaaaaaaaaaase deu certo... Me ajudem a descobrir onde foi que errei... Olha só:

function add_mdl() {
            
        // document.getElementById("mdd").setAttribute("data-toggle", "modal");
        // document.getElementById("mdd").setAttribute("data-target", "#modal-autor");
                
	$('#mdd').live('click', function (e) {
	     $('#modal-autor').modal();
	});
}

Seguinte... Nesta função temos 2 "formas", onde via JS as linhas comentadas eu removi os elementos "data-toggle" e "data-target", pois observei que com eles eu não consigo atribuir o value do botão para uma variável ou qualquer outra coisa, resumidamente falando é: quando uso este atributo no button, ele executa ele antes de atribuir qualquer outra ação, mesmo colocando o atributo depois do value, depois de tudo, enfim..

 

Utilizando o setAttribute para adicionar este atributo no evento onclick do botão, ele funciona apenas na primeira linha, por exemplo, se eu clicar no editar da linha arquivo 2, ele faz como se desse refresh na página, quando clico no editar da linha arquivo 1, ele abre o modal com o ID do arquivo da linha 2, ou da linha 3, ou da última que eu cliquei exceto a primeira, bem, abandonei essa forma.

 

Utilizando o $('#mdd').live(), ele faz o que promete, porém ele mostra o modal e some, sem falar que a primeira vez que eu clico, ele nao mostra o valor, dai eu clico de novo e em qualquer linha, ele mostra o valor (sempre da última que cliquei e não da atual, ou seja, da penúltima que eu cliquei)

 

Nem eu entendi direito o que ta acontecendo mas... Um teste e que funciona 100% mas não consegui aplicar isto direito:

<td>
     <button type="submit" name="endereco2" value="<?=$linha['ARQ_ID'] ?>" onclick="add_edit();" >                                            
         <br><?php echo $linha["ARQ_NOME"]; ?>
     </button> 
</td>

E na minha outra página:

$ida = $_POST['endereco2'];
echo $ida; // o $id sempre correto sai aqui !

Desta forma, o id sempre passa correto! Mas ai é um botão que eu criei a parte, eu não consigo passar este id paga o modal, eu não quero passar para outra página, preciso passar isso para o modal, apenas isto...

 

Só que ai, se eu passar o id, eu não chamo o modal, se eu chamar o modal, da undefined index no id.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia galera,

 

 

Consegui resolver, não exatamente da forma como eu queria, mas foi o único jeito que o tempo x conhecimento me permitiu...

 

Eu passo na página de busca apenas o botão Atualizar e ao clicá-lo, ele consegue encaminhar o ID do arquivo da linha para ser manipulado em outra página. Eu gostaria que ele encaminhasse todos os valores (id arquivo / autor / disciplina / etc).

 

Mas então eu acabei fazendo em outra page o editar do arquivo, dai nesta outra page eu trago o arquivo com um select puxando ele e todas as dependencias de tabelas N:N, formando assim uma nova tabela idêntica, porém com apenas as informações daquele arquivo ao qual cliquei e dentro dele, eu joguei os botões de editar em cada campo, abrindo o modal. O que não era "possível" com o botão atualizar na mesma page, pois ele se abrisse o modal, não passava o valor do ID-Arquivo e se passasse o ID não traria evento de abrir o modal, tentei com todo jeito possível, com submit, sem submit, isset no botão, JS, Ajax, funções de atribuir elemento .setAttribute após passar o ID-Arquivo e nada adiantou. Então ficou mais ou menos isso... Obrigado deixo aqui uma imagem +/-

 

Não postarei o código pois ficou bastante extenso, mais de 500 linhas, o arquivo total deu 1300+. E também não indico da forma que eu fiz, até porque com certeza não é uma boa prática.

 

OK.jpg?1462287836

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Negrito
      Olá,
       
      Estou quebrando a cabeça com o recurso Session_OnStart , pois eu gostaria que algumas paginas/arquivos .asp tivessem exceções.
       
      Criei o Global.ASA com o seguinte contexto:
       
      <SCRIPT RUNAT=Server Language="VBScript">
      Sub Session_OnStart
        startPage = "/default.asp"
        currentPage = Request.ServerVariables("SCRIPT_NAME")
        If strcomp(currentPage,startPage,1) then
          Response.Redirect("/default.asp")
        End If
      End Sub
      </SCRIPT>
       
      Ele funciona perfeitamente, quando tento acessar qualquer pagina ou subdiretorio diretamente pela URL, ele me joga para a pagina inicial.
       
      Porem, eu gostaria de ter exceções em alguns diretorios e paginas .ASP , onde eu gostaria de liberar o acesso direto ao digitar a URL.
       
      Alguem sabe me informar se é possivel ? 
       
      Obrigado.
       
       
    • Por k9studio
      Olá meus Amigos,
       
      Estou tendo dificuldades em eliminar dados repetidos de uma session
      é um sisteminha de pesquisa de domínios com array
      quero eliminar quando já tiver um nome na session, não deixar gravar outro
      aguem pode ajudar
      veja como está  
      Array ( [0] => Array ( [type] => register [domain] => testeteste.com.br [regperiod] => 1 ) [1] => Array ( [type] => register [domain] => testeteste.com [regperiod] => 1 ) [2] => Array ( [type] => register [domain] => testeteste.net.br [regperiod] => 1 ) [3] => Array ( [type] => register [domain] => testeteste.com.br [regperiod] => 1 ) [4] => Array ( [type] => register [domain] => testeteste.com [regperiod] => 1 ) [5] => Array ( [type] => register [domain] => testeteste.net.br [regperiod] => 1 ) ) Desde já muito obrigado a todos
    • Por Alberto Nascimento
      Estou tendo problemas de acesso ao Session, onde quando realizo login via computador, consigo "pegar" os dados que foram armazenados na sesion, mas quando utilizo o sistema de login no telefone ( android, por exemplo ) a session não esta conseguindo carregar os dados do usuário logado e exibir na página seguinte.
       
      Outra coisa que observei é que não consigo trabalhar com session em pastas diferentes, isso é normal? Veja só:
       
       
      Utilizando esta estrutura, não consigo ter acesso ao session no sistema ANDROID
       
      Agora se ao invés de ser como esta acima, faço uma pasta com todos os arquivos juntos, já consigo "pegar" os dados da session. Isso é normal?
    • Por tony_lu
      Ola pessoal, tenho uma hospedagem de php na hostgator e estou tentando rodar uma rotina com session e esta dando erro, na pagina só tem este código:
       
      <?php  session_start();  ?> E esta dando este erro:
      Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home2/sitewww/public_html/carrinho.php:1) in /home2/sitewww/public_html/carrinho.php on line 2
       
      Alguem pode me ajudar?
    • Por Evandrorussi
      Olá pessoal,
       
      Trabalho com PHP a uns 6 anos e me deparei com um problema de session que nunca ouvi falar, pelo menos não encontrei nada pela internet desse tipo. Tenho um servidor dedicado no Google Cloud e o site tem um sistema de login via session. O problema é que a session funciona aleatoriamente, tem hora que não funciona, o cliente troca de tela e o servidor perde a session e pede pra logar novamente, isso não acontece com todos usuários, comigo por exemplo não acontece.
      O cara que trabalha comigo não ocorria esse problema mas agora começou a acontecer e ele reparou que com guia anônima o problema não ocorre.
       
      Caso alguém pergunte, session_start() está iniciando em todas as páginas.
       
      Abraço
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.