1
resposta

PHP e JavaScript

Srs, boa tarde.

Estou tentando pegar um valor para dentro do php, através do Javascript. O que acontece e que conforme eu mudo a seleção o valor é atualizado no javascript, mas não no PHP. E simples, mas não sei como fazer. Se alguém puder ajudar eu agradeço.

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <select id="mySelect" onchange="myFunction()">
      <option value="php">PHP</option>    
      <option value="java">JAVA</option>
      <option value="c">C#</option>
    </select>
  </body>
</html>
<script>
  var selecionado = "";

  function myFunction() {
    selecionado = document.getElementById("mySelect").value;    
    console.log(selecionado);
    return selecionado;
  }

</script>

<?php 
  $var = "<script>document.write(myFunction())</script>";
  echo $var;
1 resposta

Isso não é possível. PHP é executado no servidor. Javascript é executado no cliente (navegador).

Isso significa que o PHP não sabe o que acontece no navegador. Para que você envie parâmetros do Javascript(Cliente) de volta para o PHP (Servidor), é necessário fazer uma request ao servidor enviando parâmetros via GET ou POST.

Exemplo:

<script>
  var selecionado = "";

  function myFunction() {
    selecionado = document.getElementById("mySelect").value;    
    console.log(selecionado);

  // esse comando faz um reload da página, passando o parametro "myselect" com o valor da variável "selecionado" do Javascript via GET.
   window.location.href = "?myselect="+selecionado;
    //return selecionado;
  }

</script>

<?php 

// Usando a variável superglobal $_GET podemos obter o conteúdo da variável 'myselect' passada via método GET.
$var = isset($_GET['myselect']) ? $_GET['myselect'] : null;
  echo $var;

Outra opção é utilizar o Ajax, que permite enviar os dados para o servidor sem a necessidade de recarregar a página. Mas, isso é assunto para outro curso ;)