PEGAR VALOR DE VARIAVEL JAVASCRIPT E PASSAR PARA VARIAVEL PHP

03/10/2019

0

Criei um form onde informo codigo do produto e a quantidade de um determinado produto. fazendo uso do php eu faço uma pesquisa na tabela de produtos pra cacturar o valor unitario do mesmo. Para tanto eu pego o codigo do produto digitado no input e passo pa uma variavel javascript, mas eu peciso passar esse mesmo valor para uma variavel php para filtrar a consulta na tabela apenas para o produto que possui o codigo informado no input. Pergunto: como posso passar o valor de uma variavel javascript para uma variavel php: Encontrei o codigo a seguir na internet mas não funicona ele retorna toda a tag javascript como texto ("<script>document.write(variaveljs)</script>") pra variavel php. Desde já agradeço.

<html>
<head>
 <title>Passar Variável Javascript para PHP</title>
 <script>
  var variaveljs = 'Eu sou uma variável JavaScript.';
 </script>
</head>

<body>

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

</body>
</html>
Joao Silva

Joao Silva

Responder

Post mais votado

03/10/2019

Olá, amigo tudo bem?

A unica forma de você fazer isso, seria via AJAX.

Diretamente não tem como fazer, ja que o PHP é executado em server-side e o javascript em cliente-side.

Voce poderia atribuir a variavel do server pro client, mas o inverso é impossivel sem um submit ou GET.

O AJAX seria sua forma de executar uma pagina php, sem dar submit ou redirecionar.

Voce pode lançar o valor que voce quer para o php para ele calcular e buscar no banco esses dados e te retornar na resposta do AJAX.

Aqui no Devmedia tem uns artigos com PHP+AJAX:
https://www.devmedia.com.br/executando-consultas-ao-mysql-com-php-e-ajax/26008

Espero ter ajudado. :D

Alex William

Alex William
Responder

Mais Posts

08/10/2019

Joao Silva

Alex, obrigado pela dica. Porém eu estou com uma dificuldade: no exemplo que me indicou é criada uma tabela html e prenchida com o conteudo do banco de dados. porem eu preciso retornar o valor de um campo apenas do banco e jogar esse valor em um input. Pode me ajudar nisso ? Segue meu codigo:

treco do arquivo home.php, O FORM:

<form name="FormR" action="system/comanda/create_ite_comanda_rapido.php" method="post" enctype="multipart/form-data">
<div class="row text-center">
<div class="col-sm-3 text-center">
</div>
<div class="col-sm-3 text-center">
<div class="form-group text-right">
<label>Cód. Produto</label>
<input type="text" class="form-control" id="produto_r" placeholder="" name="produto_r" onblur="getUnitario();">
<input type="text" class="form-control" id="valor_r" placeholder="valor" name="valor_r" >
</div>
</div>
<div class="col-sm-3 text-center">
<div class="form-group text-right">
<label>Quant.</label>
<input type="text" class="form-control" id="quant_r" placeholder="" name="quant_r">
<input type="hidden" class="form-control" id="total_r" placeholder="total" name="total_r" >
<input type="hidden" class="form-control" id="comanda_r" placeholder="" name="comanda_r" readonly value="<?php echo $IdComanda?>">
<input type="hidden" class="form-control" id="mesa_r" placeholder="" name="mesa_r" readonly value="<?php echo $mesa?>">
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10"> <br/>
<button type="submit" class="btn preto">Salvar</button>
</div>
</div>
</div>

</div>
</form>



--------------------------------------------------------------
arquivo unitario.php

<?php
if(!session_id()):
session_start();
endif;
require_once('_app/Config.inc.php');

// Verifica se existe a variável txtnome
if (isset($_GET["idpro"])):
$idProduto = $_GET["idpro"];
// Verifica se a variável está vazia
if (empty($idProduto)):
$sql = "SELECT * FROM grade";
else:
$idProduto .= "%";
$sql = "SELECT * FROM grade WHERE grID like '$idProduto'";
endif;
sleep(1); // atrasa a execucao do script em 1 segundo
$read = new Read;
$read->FullRead($sql);
// Verifica se a consulta retornou linhas
if ($read->getResult()):
// Captura os dados da consulta e inseri na tabela HTML
foreach ($read->getResult() as $cat):
extract($cat);
$return = $grPCO_VDA;
endforeach;
echo $return;
else:
// Se a consulta não retornar nenhum valor, exibi mensagem para o usuário
echo "Não foram encontrados registros!";
endif;
endif;
?>

--------------------------------------------------------------------
arquivo ajax:

/**
* Função para criar um objeto XMLHTTPRequest
*/
function CriaRequest() {
try{
request = new XMLHttpRequest();
}catch (IEAtual){

try{
request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(IEAntigo){

try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(falha){
request = false;
}
}
}

if (!request)
alert("Seu Navegador não suporta Ajax!");
else
return request;
}

/**
* Função para enviar o preço unitaro do produto
*/
function getUnitario() {

// Declaração de Variáveis
var idProduto = document.getElementById("produto_r").value;
var result = document.getElementById("valor_r").value;
var xmlreq = CriaRequest();

// Exibi a imagem de progresso
result.innerHTML = '<img src="Progresso1.gif" width="60" height="60"/>';

// Iniciar uma requisição
xmlreq.open("GET", "unitario.php?idpro=" + idProduto, true);

// Atribui uma função para ser executada sempre que houver uma mudança de ado
xmlreq.onreadystatechange = function(){

// Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
if (xmlreq.readyState == 4) {

// Verifica se o arquivo foi encontrado com sucesso
if (xmlreq.status == 200) {
result.innerHTML = xmlreq.responseText;
}else{
result.innerHTML = "Erro: " + xmlreq.statusText;
}
}
};
xmlreq.send(null);
}
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar