PEGAR VALOR DE VARIAVEL JAVASCRIPT E PASSAR PARA VARIAVEL PHP

JavaScript

PHP

03/10/2019

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

Curtidas 0

Melhor post

Alex William

Alex William

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
GOSTEI 1

Mais Respostas

Joao Silva

Joao Silva

03/10/2019

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);
}
GOSTEI 0
POSTAR