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.
      No EX1 tab_aprendiz retorna 2 registro, até aqui tudo ok.
      No EX2 tab_aprendiz retorna 6 registros ao invés de 2 . Como resolver este problema? Obrigado !
      tab_aprendiz id numero nome 93 1 joao 94 1 lucas tab_aluno id numero carro 67 1 gol 68 1 corsa 69 1 palio ...
      EX 1 <?php $sql = mysqli_query($con, "SELECT * FROM tab_aprendiz WHERE numero = '1' "); $quantidade_de_dados = mysqli_num_rows($sql); while($linha=mysqli_fetch_array($sql)){ //$nome = $linha['nome']; } echo 'tab_aprendiz tem' .$quantidade_de_dados. 'registros'; // 2 ?> EX 2 <?php $sql = mysqli_query($con, "SELECT * FROM tab_aprendiz INNER JOIN tab_aluno ON tab_aprendiz.numero = tab_aluno.numero WHERE numero = '1' "); $quantidade_de_dados1 = mysqli_num_rows($sql); $quantidade_de_dados2 = mysqli_num_rows($sql); while($linha=mysqli_fetch_array($sql)){ //$nome = $linha['nome']; //$carro = $linha['carro']; } echo 'tab_aprendiz tem' .$quantidade_de_dados1. 'registros'; // 6 echo 'tab_aluno tem' .$quantidade_de_dados2. 'registros'; // 3 ?>  
    • By Biel.
      Olá pessoal. Direto ao ponto. Ao clicar no botão, fica selected somente os itens do selectA. Gostaria que ficasse selected os itens de todos os selects. Há quem dica replica o javascript e altera o atributo id e pronto. A ideia pessoal é resolver o problema com o mínimo de código javascript possível. Obrigado !
      <button onClick="selecionarTodos();" >selecionarTudo</button> <script> function selecionarTodos(){ var array = document.getElementById('aprendiz1'); for(var i = 0; i < array.length; i++){ array[i].selected = true; } } </script> <hr> <br>selectA<br> <select name="selectA" multiple id="aprendiz1" class="aprendiz1" size="2"> <option>1111111111111111</option> <option>2222222222222222</option> </select> <br>selectB<br> <select name="selectB[]" multiple id="aprendiz1" class="aprendiz1" size="3"> <option>1111111111111111</option> <option>2222222222222222</option> <option>3333333333333333</option> </select> <br>selectC<br> <select name="selectC[]" multiple id="aprendiz1" class="aprendiz1" size="3"> <option>1111111111111111</option> <option>2222222222222222</option> <option>3333333333333333</option> </select> <br>selectD<br> <select name="selectD[]" multiple id="aprendiz1" class="aprendiz1" size="3"> <option>1111111111111111</option> <option>2222222222222222</option> <option>3333333333333333</option> </select>  
    • By Biel.
      Olá pessoal. Direito ao ponto. Como fazer o o input se comportar da mesma forma que a div. Note que a largura da div, aumenta ao passo que adicionamos conteúdo. Quero que o input se comporte da mesma forma ou seja aumente a largura ao passo que adicionamos conteúdo no atributo value="" 
      <input type="text" style="border:1px solid #000;" value=""><br><br> <div style="border:1px solid #000; display:inline;">aprendiz aprendiz aprendiz</div>  
       
    • By Biel.
      Olá pessoal. Direto ao ponto. Assim que a pagina1 é acessada, header chega primeiro e redireciona automaticamente para index.php 
      Como fazer que redirecione somente quando o link pagina1.php for clicado?  Obrigado !
      <?php header("location index.php"); ?> <a href="pagina1.php">pagina1.php</a>  
    • By Biel.
      Olá pessoal. Direto ao ponto. Ao clicar no botão como fazer a div aparecer com efeito transition ?
      <style> #myDIV { background-color:red; width: 200px; height: 200px; display:none; transition: 0s; /* 0s 1s 2s */ } </style> ...
      <button onclick="myFunction()">click</button> <div id="myDIV"></div> <script> function myFunction() { // document.getElementById("myDIV").style.transitionProperty = "width, height"; // document.getElementById("myDIV").style.transition = "2s"; document.getElementById("myDIV").style.display="block"; } </script>  
×

Important Information

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