Ir para conteúdo

Arquivado

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

  • 0
markhosbh

Pegar id do link clicado em PHP

Pergunta

Prezados, bom dia!

 

Sou iniciante no mundo Web e estou com o seguinte problema, tenho uma caixa de busca que retorna uma lista de nomes por aproximação retornada pelo banco de dados, exemplo, o usuário digita apenas o primeiro nome "Marcos" na busca e retorna todos usuário que possuem "Marcos" como primeiro nome, depois o usuário irá clicar no nome completo que deseja visualizar os detalhes relacionados ao nome.

Meu problema é, como faço para pegar o valor que foi clicado para fazer uma nova busca no banco de dados apenas com o id deste que foi clicado?
Existe essa possibilidade em PHP, consegui via javascript mas não consigo passar a varival javaScript para php.

 

Meu código está assim:

<?php
                        $parametro = 'XX';
                        if (isset ($_POST['buscar'])){
                        $parametro = $_POST['nome'];
                        }    
$consulta = "SELECT A1_COD, A1_NOME FROM SA1010 WHERE A1_NOME LIKE '%".$parametro."%'";
                            $executar = sqlsrv_query($conn, $consulta);
                            
                            $i = 0;
                            while($fila = sqlsrv_fetch_array($executar)){
                                $nome = $fila['A1_NOME'];
								$cod = $fila['A1_COD'];
                            $i++;	 
                            
                        ?>
                     <a href="">
                                <div id='busca'>    
                                    <div id='<?php echo $cod?>'> <?php echo $nome?> </div> 
                                </div> 
                            </a>

                        <?php } ?>



 

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 respostas a esta questão

Recommended Posts

A dinâmica deve ser feita no Javascript, o PHP só responde ao que foi pedido, o javascript quem vai interagir com o usuário.

você pode usar o evento click.

$("#objeto").click(function(){
	var e = $(this);
  	var id_user = e.attr('data-id-user');
  	var name_user = e.attr('data-name-user');
  	
  	//aqui vai a requisição
  	$.ajax(
      	data:{nome:name_user,id:id_user}, 
      	...
    );
});
//exemplo de objeto clicável
//<a href="#linkCego" data-id-user="5478" data-name-user="José da Silva Sauro" id="objeto">José da Silva Sauro</a>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,
Com Java script eu havia feito da seguinte forma:

 

<script>

$(function(){
    $('#busca div').click(function(){
        var id = $(this).attr('id');       		
    });
})
</script>

Porém eu não sei como enviar o valor obtido pela variável "id" através do formulário via POST.

Tentei inclusive passar o valor da variavel "id" do javaScript pra PHP mas retorna nulo.

 

<?php 
$variavelphp = "<script>document.write(id)</script>";
echo $variavelphp;
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, markhosbh disse:

Amigo,
Com Java script eu havia feito da seguinte forma:

 


<script>

$(function(){
    $('#busca div').click(function(){
        var id = $(this).attr('id');       		
    });
})
</script>

Porém eu não sei como enviar o valor obtido pela variável "id" através do formulário via POST.

Tentei inclusive passar o valor da variavel "id" do javaScript pra PHP mas retorna nulo.

 


<?php 
$variavelphp = "<script>document.write(id)</script>";
echo $variavelphp;
?>

 

via ajax como no meu exemplo, aqui vai documentação ajax jquery

http://api.jquery.com/jquery.ajax/

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por unnameduser
      Tem alguma forma de retirar esse espaço que fica entre os links quando selecionados no CTRL + A? Isso particularmente me incomoda muito.

    • Por h1d31bb
      Olá Galera!!
      Você que quer aprender a desenhar mangás eu estou disponibilizando um curso no qual eu fiz e aprendi a desenhar também, são técnicas bem simples e é 100% garantido que você irá desenhar os personagens de animes que sempre quis ou criar o seu mesmo.
       
       
       
       
       
      http://metodofanart.com.br/vsl-fanart-2-no-delay/?ref=F15484556P

    • Por Matt_Engler
      Por favor, preciso de ajuda para meu TCC onde terei que criar um site. Eis o problema, utilizei o CSS para estilizar os links do site, dessa maneira:
       
      a{
          color: white;
          text-decoration: none;
          padding: 5px 10px;
      }
      a:link{
          color: white;
      }
      a:visited{
          color: white;
      }
      a:hover{
          color: black;
          background-color: white;
      }
       
      Essa estilização foi aplicada a todos os links do site, porém, quero aplicá-la a apenas alguns links específicos (no caso, os links do top). Como faço para "isolar" a estilização de cada link?!
       
      Abaixo disponibilizo o HTML e o CSS do site, desde já agradeço!
       
       
      <!DOCTYPE html>
      <html>
      <head>
          <title>Anything</title>
          <link rel="stylesheet" type="text/css" href="css/Stil.css">
      </head>
      <body>
      <!-- Inicio do Menu -->
      <div class="haus">
          <div class="area">
              <h1 class="logo"> <span class="yellow">&emsp;<img src="Logo.png" width="325" height="50"></span> </h1>
              <div class="menu">
                  <a href="Haus.html">Haus</a>
                  <a href="#">Nachrichten</a>
                  <a href="#">Kino</a>
              </div>
          </div>n
      </div>
      <!-- Fim do menu -->
      <!-- Inicio do Conteúdo -->
      <br>
      <div class="area-principal">
          
          <div class="postagem">
              <h2><a href="#"> Título da Notícia:</a></h2>
              <span class="data-postagem">Data da postagem:</span>
              <img src="img/imagem1.png" class="img-postagem">
              <p>
                  Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
              </p>
              <span>Postado por: Fulano</span>
                  </div>
      </div>
      </body>
      </html>
       
      ================================================================================================================================================================
       
      *{
          margin: 0px;
          padding: 0px;
      }
      body{
          background-color: lightgray;
          font-size: 16px;
          font-family: "Trebuchet MS", Helvetica, sans-serif;
          color: black;
      }
      .haus{
          font-size: 25px;
          color: yellow;
          background-color: black;
          border-bottom: 7px solid gold;
          height: 50px;
          position: fixed;
          width: 100%;
          top: 0px;
      }
      .area{
          width: 720px
          margin: 0 auto;
      }
      .menu{
          float: right;
          padding: 10px 100px;
      }
      .logo{
          float: left;
      }
      .yellow{
          color: gold;
      }
      a{
          color: white;
          text-decoration: none;
          padding: 5px 10px;
      }
      a:link{
          color: white;
      }
      a:visited{
          color: white;
      }
      a:hover{
          color: black;
          background-color: white;
      }

      .area-principal{
          width: 720px;
          margin: 55px auto 10px auto;
      }
      .postagem{
          margin: 10px;
          background-color: darkgray;
          margin-bottom: 10px;
      }
      h2{
          color: gold;
          text-decoration: none;
      }
      .data-postagem{
          display: block;
          font-size: 14px;
          border-bottom: 1px solid #f4f4f4;
          padding-bottom: 10px;
          margin-bottom: 10px;
      }
      .img-postagem{
          float: left;
          margin: 0px 10px 10px 0px;
      }
      p{
          text-align: justify;
          padding: 10px;
      }
       
    • Por Gustavo2503
      Eu preciso de um link para abrir um arquivo em decodificado em base64, eu fiz o link mas quando eu abro o link ele não aparece nada, o título da página fica "Sem título" e a página fica branca, vazia. E quando eu clico na URL e dou ENTER, ele aparece o meu arquivo normal. O link está assim:
      <a target="_blank" href="data:application/pdf;base64,MEU_ARQUIVO_BASE64">Arquivo</a> Como arrumar isso?
    • Por Paulo Wilker
      Pessoal! 
      Estou codificando um link para o usuário se descadastrar de uma lista de emails enviados, ao clicar no link, uma mensagem de e-mail com o e-mail a descadastrar descrito deverá ir para o administrador da lista para retirá-lo manualmente. O que eu consegui até aqui é se eu enviar o link com o "descadastre-se" já com o e-mail no final:  <a href="www.meudominio.com.br/descadastra.php?email=email@email.com", aí o admin recebe e retira da lista manualmente. O que eu gostaria é que isso fosse automático, que ao clicar no link, o e-mail do usuário seja captado automaticamente sem que o admin tenha que colocar no final do link.
      <?php $email = ($_GET['email']); $headers = "MIME-Version: 1.0\r\n";  $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "X-Mailer: PHP ". phpversion(); $envio = mail( "dominio@meudominio.com.br", "Descadastrar E-mail", "Favor descadastrar-este e-mail da sua lista de e-mail:\r\n <a href=' " . $email . " ' target='_blank'>".$email."</a>", $headers);   if($envio)  echo "Você não receberá mais este tipo de e-mail"; else  echo "A mensagem não pode ser enviada"; ?>  
×

Informação importante

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