Jump to content
Biel.

[Resolvido] imprimir em php valor javascript

Recommended Posts

Olá pessoal. Direto ao ponto. Abaixo temos uma function. Note que ao clicar no link seu valor mostra e esconde. Até aqui tudo ok.
Estou tentando fazer o seguinte: Quando o link for pressionado, quero imprimir em php o valor de

Nota: Não é para criar button é para clicar no link mesmo. Obrigado ! 

 


<!--<button onClick="func_1()" >botao</button>-->

<a href="link1.php" onClick="func_1()">link1 </a> <br> <br> 
<p id="tete1"></p>

<script>
function func_1() {
	
var a = 300;

var teste = document.getElementById('tete1');
    teste.innerHTML = a; 
	}

document.getElementById('tete1').innerHTML = a;

</script>

 

Share this post


Link to post
Share on other sites

Primeiro que a tag <a> deve ser manipulada para que ela não redirecione de imediato.

A função é quem deve fazer isso.

O que pode fazer é passar essa informação por protocolo GET para o arquivo link1.php

<!--
O nome do evento é "onclick" e não "onClick"
O atributo "href" não é necessário pois é a função quem vai redirecionar
<a href="link1.php" onClick="func_1()">link1 </a> <br> <br>
<p id="tete1"></p> Isso se torna inutilizável aqui pois haverá redirecionamento
-->
<a href="link1.php" onclick="func_1()">link1 </a>

<script>
function func_1(e) {
    /*
    // Caso precise usar o atributo href
    e.preventDefault();
    var link = e.target.href + '?informacao=' + 300;
    */
    var link = 'link1.php?informacao=' + 300;
    window.location.href = link;
  	return (false);
}
</script>

 

Em link1.php

<?php
var_dump($_GET['informacao']);

 

Share this post


Link to post
Share on other sites

Omar, tem como dar um exemplo prático com base no código que postei? Outro detalhe é que não tem apenas um link, mas centenas de links/href

Share this post


Link to post
Share on other sites

Tenta assim:

<a href="link1.php" class="link-da-funcao">link1</a>
<a href="link2.php" class="link-da-funcao">link2</a>
<a href="link3.php" class="link-da-funcao">link3</a>

<script>
    var links = document.querySelectorAll('a.link-da-funcao');

    links.forEach(function (e) {
        e.setAttribute('data-link', e.href); // Adiciona o atributo "data" na tag com o valor do atributo "href"
        e.removeAttribute('href'); // Remove o atributo "href" impedirá de redirecionar
        e.addEventListener('click', func_1, false); // Adiciona o evento click na tag
    });

    function func_1(e) {
        // Obtem o link pelo atributo "data" e rediceciona para ele enviando a informação por GET
        window.location.href = (e.target).dataset.link + '?informacao=' + 300;
    }
</script>

 

Share this post


Link to post
Share on other sites

Omar, infelizmente o objetivo não foi atingido. Vamos começar do zero. Veja abaixo o que o php está fazendo: Pegando o valor javascript e exibindo na tela o valor. Quero mudar apenas um detalhe: Gostaria que php exibisse na tela o valor javascript somente quando o link receber um click 

 

<h1>esta é a pagina 1 </h1>
<a href="link1.php" onclick="pegarValor()">link1 </a><br> <br> 
<a href="link2.php" onclick="pegarValor()">link2 </a><br> <br> 
<script>
function pegarValor() {
var tete = "700";
return tete;
}
var tete = pegarValor();

</script>

<?php 
$valorJavascript = "<script>document.write(tete)</script>";
$pega = $valorJavascript; 
print $pega;
?>



<h1>esta é a pagina 2 </h1>
<a href="link1.php" onclick="pegarValor()">link1 </a><br> <br> 
<a href="link2.php" onclick="pegarValor()">link2 </a><br> <br> 

<script>
function pegarValor() {
var tete = "700";
return tete;
}
var tete = pegarValor();

</script>

<?php 
$valorJavascript = "<script>document.write(tete)</script>";
$pega = $valorJavascript; 
print $pega;
?>

 

Share this post


Link to post
Share on other sites

É que você quer meter os pés pelas mãos complicando algo muito simples.

Não precisa se desdobrar para extrair com o PHP alguma informação do javascript porque isso é impossível.

Nem o PHP pode extrair alguma informação do javascript .

Pense da seguinte forma:

1º - PHP (serve-side) processa e renderiza o DOM.

2º - Usuário (user-side) recebe o DOM renderizado pelo (serve-side).

Ou seja quando no javascript (user-side) queremos algo do PHP (serve-side) apenas pedimos que o PHP renderize a informação/conteúdo que queremos.

 

No contexto geral então quando você vai enviar algo de uma página para outra você envia a informação para o (user-side) e se algo precisa ser usado com essa informação ela é re-enviada para o (serve-side).

Lógico que (serve-side) para trabalhar sozinho com os dados e entregar para o (user-side) as informações renderizadas assim como disse antes.

 

Preparei 4 exemplos diferentes aqui para você ver qual a melhor alternativa.

https://drive.google.com/file/d/1nE7cHow4FivW63JEZdGie6GygHXEe_HG/view?usp=sharing

 

 

Share this post


Link to post
Share on other sites
Em 24/01/2021 at 16:31, Biel. disse:

Olá pessoal. Direto ao ponto. Abaixo temos uma function. Note que ao clicar no link seu valor mostra e esconde. Até aqui tudo ok.
Estou tentando fazer o seguinte: Quando o link for pressionado, quero imprimir em php o valor de

Nota: Não é para criar button é para clicar no link mesmo. Obrigado ! 

 



<!--<button onClick="func_1()" >botao</button>-->

<a href="link1.php" onClick="func_1()">link1 </a> <br> <br> 
<p id="tete1"></p>

<script>
function func_1() {
	
var a = 300;

var teste = document.getElementById('tete1');
    teste.innerHTML = a; 
	}

document.getElementById('tete1').innerHTML = a;

</script>

 

 

JavaScript não se comunica com PHP, se não por meio de requisição

Share this post


Link to post
Share on other sites

Achei que fosse possível, afinal hoje em dia muita coisa está se tornando possível. Obrigado !

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Biel.
      Olá pessoal. Direto ao ponto 
      A primeira instrução [a-z]{1,3} especifiquei min 1 e max 3 letras para validar 
      A segunda instrução (.[a-z]{1,3})? coloquei na mesma $regex porque pode ou não existir na $campoDeTexto
      Como fazer a primeira instrução não enxergar a segunda instrução ou seja entender que seu máximo é até 3 letras e não até 8 letras  Obrigado 
      <?php //$campoDeTexto = "aaa.z"; // pode ou não existir a 2º instrução no campoDeTExto ou seja .z ou .zz ou .zzz $campoDeTexto = "aaaaaaaa"; $regex = '/^[a-z]{1,3}(.[a-z]{1,3})?$/i'; if (preg_match($regex, $campoDeTexto)){ echo "valida "; } else{ echo "nao valida"; } ?>  
    • By Biel.
      Olá pessoal. Direto ao ponto.  Estou tentando replicar $cores para dentro do while e quando der um print $cores os dados exibir normalmente na tela.. A ideia é replicar $cores para dentro do while e não deixar $cores  dentro do while.  Muitos já falaram que isso é impossível. alguém discorda? Como resolver o problema ? Obriigado !
      tabela1 cores green blue red <?php $cores = $linha['cores']; ?> <?php $sql = mysqli_query($con, "SELECT * FROM tabela1 "); while($linha = mysqli_fetch_array($sql)){ ?> <?php } ?>  
    • By Biel.
      Olá pessoal. Direto ao ponto. O código php abaixo retorna este resultado:
      1-blue 2-blue 3-blue 4-blue 5-blue 6-green 7-green 8-green 9-green 10-green 11-green 12-green 13-green 14-red 15-red 16-red 17-orange 18-orange 19-orange 20-orange Como faço para retornar este resultado
      1-blue-1 2-blue-2 3-blue-3 4-blue-4 5-blue-5 6-green-1 7-green-2 8-green-3 9-green-4 10-green-5 11-green-6 12-green-7 13-green-8 14-red-1 15-red-2 16-red-3 17-orange-1 18-orange-2 19-orange-3 20-orange-4 <?php for($i=1; $i<=20; $i++){ if($i<=5){ $a=$i.'-blue'; } if($i>5 && $i <=13){ $a=$i.'-green'; } if($i>13 & $i <=16){ $a=$i.'-red'; } if($i>16 && $i<=20){ $a=$i.'-orange'; } print $a.'<br>'; } ?>  
    • By Biel.
      Olá pessoal. Direto ao ponto. O código abaixo imprime todos os dados dentro do while . Existe alguma forma de imprimir todos os dados fora do while ?
      tab_aprendiz cores green yellow blue brown orange <?php $sql = mysqli_query($con, "SELECT * FROM tab_aprendiz"); while($linha=mysqli_fetch_array($sql)){ $cores = $linha['cores']; echo $cores.'<br>'; } ?>  
    • By Biel.
      Olá pessoal . Direto ao ponto. Abaixo tem duas tabelas unidas. Como fazer retornar a quantidade correta de registros  na linha indice 1 
      Gostaria de imprimir na tela este resultado 
      tab_aprendiz tem 2 registros
      tab_aluno tem 3 registros
       
      tab_aprendiz id indice nome 93 1 joao 94 1 lucas 95 2 mateus 96 2 silva tab_aluno id indice carro 67 1 gol 68 1 corsa 69 1 palio 70 2 monza 71 2 vectra 72 2 uno ...
      <?php $sql = mysqli_query($con, "SELECT * FROM tab_aprendiz INNER JOIN tab_aluno ON tab_aprendiz.indice = tab_aluno.indice WHERE indice = '1' "); $quantidade_de_dados1 = mysqli_num_rows($sql); $quantidade_de_dados2 = mysqli_num_rows($sql); echo 'tab_aprendiz tem' .$quantidade_de_dados1. 'registros'; echo 'tab_aluno tem' .$quantidade_de_dados2. 'registros'; ?>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.