Eu quero passar variáveis JavaScript para PHP usando uma entrada oculta em um formulário.
Mas eu não posso obter o valor de $_POST['hidden1']
dentro $salarieid
. Há algo de errado?
Aqui está o código:
<script type="text/javascript">
// View what the user has chosen
function func_load3(name) {
var oForm = document.forms["myform"];
var oSelectBox = oForm.select3;
var iChoice = oSelectBox.selectedIndex;
//alert("You have chosen: " + oSelectBox.options[iChoice].text);
//document.write(oSelectBox.options[iChoice].text);
var sa = oSelectBox.options[iChoice].text;
document.getElementById("hidden1").value = sa;
}
</script>
<form name="myform" action="<?php echo $_SERVER['$PHP_SELF']; ?>" method="POST">
<input type="hidden" name="hidden1" id="hidden1" />
</form>
<?php
$salarieid = $_POST['hidden1'];
$query = "select * from salarie where salarieid = ".$salarieid;
echo $query;
$result = mysql_query($query);
?>
<table>
Code for displaying the query result.
</table>
php
javascript
variables
SUN Jiangong
fonte
fonte
Respostas:
Você não pode passar valores variáveis do código JavaScript da página atual para o código PHP da página atual ... O código PHP é executado no lado do servidor e ele não sabe nada sobre o que está acontecendo no lado do cliente.
Você precisa passar variáveis para o código PHP a partir do formulário HTML usando outro mecanismo, como enviar o formulário usando os métodos GET ou POST.
fonte
mysql_
funções; não seria o objetivo de responder a essa pergunta com uma reescrita completa.Apenas salve-o em um cookie:
E então leia-o com PHP:
Não é uma solução bonita, mas funciona.
fonte
Existem várias maneiras de passar variáveis do JavaScript para o PHP (não a página atual, é claro).
Você poderia:
Tenho certeza de que isso pode parecer mais sofisticado e percorrer todas as variáveis e outros enfeites - mas eu o mantive básico, para facilitar o entendimento para os novatos.
fonte
Aqui está o exemplo de trabalho: Obtenha o valor da variável javascript na mesma página em php.
fonte
echo "<script>document.writeln(p1);</script>";
usa a variável javascriptp1
em javascript , não em php.document.writeln
é uma função javascript que você está executando no navegador enquanto o navegador está criando a página HTML.O PHP é executado no servidor antes que a página seja enviada ao usuário, o JavaScript é executado no computador do usuário depois de recebido, portanto, o script PHP já foi executado.
Se você deseja passar um valor JavaScript para um script PHP, precisará fazer um XMLHttpRequest para enviar os dados de volta ao servidor.
Aqui está uma pergunta anterior que você pode seguir para obter mais informações: Tutorial do Ajax
Agora, se você só precisa passar um valor de formulário para o servidor, também pode fazer uma postagem de formulário normal, que faz a mesma coisa, mas a página inteira precisa ser atualizada.
Clicar em enviar enviará a página e imprimirá os dados enviados.
fonte
Eu estava tentando descobrir isso sozinho e depois percebi que o problema é que essa é uma maneira de olhar para trás da situação. Em vez de tentar passar coisas do JavaScript para o php, talvez seja melhor fazer o contrário, na maioria dos casos. O código PHP é executado no servidor e cria o código html (e possivelmente também o script java). Em seguida, o navegador carrega a página e executa o script html e java.
Parece que a maneira mais sensata de abordar situações como essa é usar o PHP para criar o JavaScript e o html desejado e, em seguida, usar o JavaScript na página para fazer o que o PHP não puder fazer. Parece que isso lhe daria os benefícios do PHP e do JavaScript de uma maneira bastante simples e direta.
Uma coisa que fiz que dá a impressão de passar coisas para o PHP da sua página em tempo real é usar a tag de imagem html para chamar o código PHP. Algo assim:
O código PHP no pic.php realmente criaria código html antes que sua página da web fosse carregada, mas esse código html é basicamente chamado em tempo real. O código php aqui pode ser usado para criar uma imagem em sua página, mas pode ter qualquer comando que você queira além dele. Talvez isso mude o conteúdo de alguns arquivos no servidor, etc. A vantagem disso é que o código php pode ser executado a partir de html e eu assumo JavaScript, mas o lado negativo é que a única saída que ele pode colocar na sua página é uma imagem. Você também tem a opção de passar variáveis para o código php através de parâmetros no URL. Os contadores de páginas usarão essa técnica em muitos casos.
fonte
Podemos passar valores facilmente, mesmo em páginas iguais / diferentes, usando os cookies mostrados no código da seguinte forma (no meu caso, eu estou usando-o com a integração do Facebook) -
E eu o acessei (em qualquer arquivo) usando -
fonte
Aqui está como eu fiz isso (eu precisava inserir um fuso horário local no PHP:
fonte
Sua função, que define o valor oculto do formulário, está sendo chamada? Não está neste exemplo. Você não deve ter problemas para modificar um valor oculto antes de postar o formulário novamente no servidor.
fonte
Seu código tem algumas coisas erradas nele.
É possível definir uma variável JavaScript em uma variável oculta em um formulário, enviá-la e ler o valor novamente em PHP. Aqui está um exemplo simples que mostra isso:
fonte
quando sua página carrega pela primeira vez o código PHP, execute primeiro e defina o layout completo da sua página da web. após o layout da página, ele configurou o carregamento do JavaScript. agora o JavaScript interage diretamente com o DOM e pode manipular o layout, mas o PHP não precisa atualizar a página. Só existe uma maneira de atualizar sua página e passar os parâmetros no URL da página para que você possa obter os dados via PHP. Então, usamos o AJAX para interagir Javascript com PHP sem recarregar a página. O AJAX também pode ser usado como uma API. mais uma coisa, se você já declarou a variável no PHP. antes do carregamento da página, você pode usá-lo com seu exemplo de Javascript.
o código acima está correto e funcionará. mas o código abaixo está totalmente errado e nunca funcionará.
Passar valor de JavaScript para PHP via AJAX
é a maneira mais segura de fazer isso. porque o conteúdo HTML pode ser editado por meio de ferramentas de desenvolvedor e o usuário pode manipular os dados. portanto, é melhor usar o AJAX se você quiser segurança sobre essa variável. Se você é um novato no AJAX, saiba que o AJAX é muito simples.
exemplo simples de AJAX
caso contrário, você pode criar entrada HTML oculta dentro do seu formulário. gostar
depois, via jQuery ou javaScript, passe o valor para o campo oculto. gostar
Agora, quando você envia o formulário, pode obter o valor em PHP.
fonte
Pode ser que você possa usar o método jquery serialize () para que tudo fique de uma só vez.
// dessa forma, você pode obter o valor oculto também no lado do servidor.
fonte
Obviamente, essa solução não foi mencionada anteriormente. Você também pode usar cookies para passar dados do navegador de volta ao servidor.
Basta definir um cookie com os dados que você deseja passar para o PHP usando javascript no navegador.
Então, basta ler este cookie no lado do PHP.
fonte
Não podemos passar valores de variáveis JavaScript diretamente para o código PHP ... O código PHP é executado no lado do servidor e ele não sabe nada sobre o que está acontecendo no lado do cliente.
Portanto, é melhor usar o AJAX para analisar o valor do JavaScript no código php.
Ou, como alternativa, podemos fazer isso com a ajuda de COOKIES em nosso código.
Obrigado e Saúde.
fonte