7
respostas

Ler variável javascript em um codigo PHP

Estou usando uma API em javascript que me entrega um valor, preciso usar este valor num condicional PHP.

O problema é que o PHP é uma linguagem de servidor e o javascript não, e não sei como fazer a ponte entre estas duas linguagens já que preciso passar este valor de forma síncrona.

Versão simplificada do codigo:

<script>
    var estoque = "sim";
<script>

<?php if ($colocar_valor_de_estoque_aqui == sim){ ?>
    <div> Mostro produto </div>
<?php  }   ?>
7 respostas

Você pode resolver isso através de json_encode($variavel_php), assim você pode converter objetos em PHP para JSON, nesse formato você poderá manipulá-los no JavaScript. Segue um link do w3schools bem didático: https://www.w3schools.com/js/js_json_php.asp

Muito Obrigado, Guilherme.

No tutorial que você me enviou passamos um arquivo PHP para um código Javascript, preciso do oposto.

Leandro, ler uma variável do javascript com PHP é uma das piores formas de fazer a comunicação entre as 2 linguagens, mas, caso queira realmente seguir por este caminho, tente o seguinte:

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

Abraços!

Para isso você precisa estudar sobre requisições para o servídor. Segue uma requisição jquery.ajax que acho que resolve seu problema:

function VerificarEstoque() {
    var estoque = "sim"
    $.ajax({
        type      : 'post',
        url       : 'page.php',
        data      :  {estoque: estoque},

        success: function (response) {
            $('#id_mostro_produto').html(response);                                                
        },
        error: function(){
            alert('Falha!');
        }
    });
}

page.php

if($_POST['estoque'] == 'sim'){
    echo $produto;
}

Obrigado, caras

Quanto a requisição para o servidor, tenho uma dúvida.

Sempre que usei requisições AJAX, eu tinha dois arquivos separados, um com os dados que eu queria pegar e outro sendo o meu arquivo HTML/PHP.

Não consigo entender como usar um código AJAX onde todo o conteúdo da página precisa estar em somente um arquivo ( o que é o meu caso), já que tenho na mesma folha php pedaços em HTML, PHP e Javascript e não posso dividí-los em arquivos separados.

Monto a página buscando os dados com um loop dentro do PHP que deveria verificar se a váriavel javascript tem conteúdo "sim" ou "nao"

Poderiam me dar uma ajuda sobre o conceito deste tipo de página?

Bom, Leandro.

Ter HTML, JS e PHP em um único arquivo é uma prática bem ruim. O ideal é cada um ter seu lugar bem definido. Arquivos PHP só devem possuir código PHP, arquivos JavaScript só devem ter JavaScript. A única exceção é a parte de visualização da sua aplicação, que as vezes depende de variáveis php, ou ifs, por exemplo. Neste caso, o ideal é utilizar uma template engine, como Twig ou Smarty.

Abraços e bons estudos.

Nessa opção que te dei você precisaria sim criar uma página php separada, o que é o mais indicado como foi muito bem pontuado pelo Carlos Vinicius. Dê uma olhada no padrão de arquitetura MVC para entender melhor a importância da separação entre Modelo, Visão e Controle