Valor do <option> com PHP

15/06/2015

0

Prezados boa tarde!

Estou montando um relatório nos modos Analítico e Sintético, e estes irão trazer resultados diferentes, claro... Basicamente a programação dos select está assim:

<select name="pegaValor">
<?php
echo "<option value='a'"; if($_GET['pegaValor'] == 'a') echo "selected"; echo "> A </option>";
echo "<option value='b'"; if($_GET['pegaValor'] == 'b') echo "selected"; echo "> B </option>";
echo "<option value='c'"; if($_GET['pegaValor'] == 'c') echo "selected"; echo "> C </option>";
echo "<option value='d'"; if($_GET['pegaValor'] == 'd') echo "selected"; echo "> D </option>";
?>
</select>

// select que vê se é analítico ou sintético 

<select id="ans" name="ans">
<?php
echo "<option value='sintetico' "; if($_GET['ans'] == 'sintetico') echo "selected"; echo ">Sintetico</option>";
echo "<option value='analitico' "; if($_GET['ans'] == 'analitico') echo "selected"; echo ">Analitico</option>";
?>
</select>


O que eu preciso é fazer esse value ser trocado caso tenha o analítico ou sintético, por exemplo:
<?php
echo "<option value='"; if($_GET['ans'] == 'analitico'){ echo 'a'; } 
elseif($_GET['ans'] == 'sintetico'){ echo 'a-resumido'; } echo "'">
?>


Mas não está funcionando... Precisaria deixar esse value como não fixo, mas sim alterado a partir do segundo filtro para trazer os registros em tela de forma analítica ou sintética..
Guilherme Silva

Guilherme Silva

Responder

Posts

15/06/2015

Aldair Gomes

Olá, Veja se te Ajuda este link
http://natanaelsimoes.com/site/select-html-carregando-dados-dinamicamente/
Responder

15/06/2015

Guilherme Silva

Oi Aldair,

Infelizmente não... essa query eu sei fazer, mas essa é só para trazer registros do banco.. Eu preciso que se a pessoa selecionar o filtro Analítico, o valor do <option> A seja "a", e se ela selecionar Sintético, que o valor mude para "a-resumido" [exemplo] ...
Responder

15/06/2015

Aldair Gomes

Usa jQuery
---Editado
//Não testei o Código fiz de cabeça... pode ser que dê um erro.
$('#ans').on('change', function() {
alert($(this).value());
if($(this).value() == 'a'){
  $('#idDoseuOption').attr('value', 'a');
}else{

}
});

Responder

15/06/2015

Guilherme Silva

Legal Aldair, mas realmente queria saber dessa troca em PHP, pois não mexo com jQuery, e até aprender demanda certo tempo, o qual não tenho muito, por isso estou com o PHP que é uma linguagem que já utilizo... Eu sei que tem como fazer, e quase consegui, mas não sou muito bom de lógica.. Se alguém puder analisar essa minha query e dizer o que está errado ficaria muito agradecido..
Responder

15/06/2015

Aldair Gomes

Cara, com PHP vc vai ter que dar um refresh na página pra poder atualizar os dados... não acho viavel isso, mas tudo bem...
Responder

16/06/2015

William

Complementando o colega Aldair, esses eventos podem ser tratados no front end com javascript ou jQuery, forçar o seu sistema a enviar outra requisição para o servidor apenas para mudar um valor estático do HTML seria ruim e desnecessário, justificaria se fosse uma requisição AJAX para trazer novos valores do banco de dados.

Uma dica, nem que seja o minimo possível de JavaScript (se quiser jQuery) você terá que saber para desenvolver aplicações WEB.
Responder

16/06/2015

Aldair Gomes

Obrigado William, e complementando, no mundo web, programar só PHP e não aprender as tecnologias front-end é um "ERRO"(veja que está entre aspas) fatal... pelo menos em minha opinião.
Responder

16/06/2015

Guilherme Silva

Entendo amigos, realmente sinto a necessidade de aprender jQuery, mas é que não estou com tempo disponível para isso, e muitas vezes, pegar trechos de códigos na internet e analisá-los para implementar corretamente demora.. Mas tudo bem, apenas achei que neste trecho que mostrei era possível mudar um echo ou outro de lugar para funcionar legal.. Agradeço a atenção!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar