Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Camila de Paula

Abrir página EDITAR de acordo com o valor da variavel

Recommended Posts

Olá, boa noite!

 

Estou tentando criar uma lógica para abrir um formulário, mas não está dando certo. É meio complexo, mas vou tentar explicar o que está acontecendo:

 

Tenho 3 arquivos PHP com inputs exatamente iguais que salvo na mesma tabela no Mysql. Eles são Contratos de veículos de locação, mas precisei fazer 3 porque a única coisa que muda neles é uma imagem que mostra qual é o tipo de veículo. Por exemplo, se o usuário precisar alugar uma Van, ele vai emitir o contrato_van.php, por que nele tem a imagem da Van. Se ele precisar alugar um automóvel, ele vai emitir o contrato_auto.php, porque nele tem a imagem de um automóvel, e assim por diante.

 

Como os inputs de cada contrato são exatamente iguais, estou usando a mesma tabela do Mysql para guardar os dados. Aí na hora de preencher, o usuário preenche no input da variavel $veiculo o tipo de veiculo que é. Até aí, tudo bem.

 

O problema é que tenho uma página que lista todos os contratos emitidos, onde é possível fazer as alterações necessárias , e não consigo fazer a lógica de abrir o contrato de acordo com o tipo de veículo.

 

A página listar.php abre o contrato de acordo com o ID, assim:

<td><a href= 'editar.php?id=<?php echo $row_Busca['id'] ?>'><img src= '../../images/edit.png' /></a></td>

Quando clicar em editar, queria fazer algo do tipo:

Se $veiculo = auto, abrir contrato_auto.php

Se $veiculo = van, abrir contrato_van.php

Se veículo = SUV, abrir contrato_suv.php

 

Desculpe se não deu para entender, posso tentar explicar novamente se não entenderem nada...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em vez de utilizar toda essa gambiarra por causa de uma foto, porque você não coloca um switch para definir a foto que deve aparecer na página? E usa exatamente isto também na hora de editar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em vez de utilizar toda essa gambiarra por causa de uma foto, porque você não coloca um switch para definir a foto que deve aparecer na página? E usa exatamente isto também na hora de editar?

 

Obrigada pela dica, ESerra.

Vou tentar e volto para dizer se funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo =(

Onde eu preciso exibir a imagem, está assim:

<?php 

if(isset($_POST['veiculo'])){ switch ($_POST['veiculo']){

case "Auto":
$tipo_veiculo = "checklist_auto.jpg"; 
break;
case "Van": 
$tipo_veiculo = "checklist_van.jpg";
break;
case "SUV": 
$tipo_veiculo = "checklist_suv.jpg";
break;
 } 
 }

?>
 <img src="../images/<?php $tipo_veiculo;?>"> 

Não mostra a imagem e também não dá erro.

Fui no código fonte e aparece SEM o nome da imagem : <img src="../images/">

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fazendo um teste rápido com um simples formulário, funcionou:

 

<form method="post" action="?">
<input type="text" name="veiculo" />
<input type="submit" name="Enviar" />
</form>


<?php 


if(isset($_POST['veiculo'])){ switch ($_POST['veiculo']){


case "Auto":
$tipo_veiculo = "checklist_auto.jpg"; 
break;
case "Van": 
$tipo_veiculo = "checklist_van.jpg";
break;
case "SUV": 
$tipo_veiculo = "checklist_suv.jpg";
break;
 } 
 }
echo '---'.$tipo_veiculo.'|||';
?>
 <img src="../images/<?php $tipo_veiculo;?>"> 

Apenas observe que Auto é diferente de auto ou qualquer outra forma de escrita. Observe também que caso seja informado um valor que não exista no switch você vai ter uma imagem quebrada, então você poderia setar um default para evitar isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Fazendo um teste rápido com um simples formulário, funcionou:

 

 

<form method="post" action="?"><input type="text" name="veiculo" /><input type="submit" name="Enviar" /></form><?php if(isset($_POST['veiculo'])){ switch ($_POST['veiculo']){case "Auto":$tipo_veiculo = "checklist_auto.jpg"; break;case "Van": $tipo_veiculo = "checklist_van.jpg";break;case "SUV": $tipo_veiculo = "checklist_suv.jpg";break; }  }echo '---'.$tipo_veiculo.'|||';?> <img src="../images/<?php $tipo_veiculo;?>"> 
Apenas observe que Auto é diferente de auto ou qualquer outra forma de escrita. Observe também que caso seja informado um valor que não exista no switch você vai ter uma imagem quebrada, então você poderia setar um default para evitar isto.

 

Entendi o que aconteceu: deste jeito, a imagem só aparece depois que clicar no submit. O que eu gostaria de fazer é preencher o input 'veiculo' e já mostrar a imagem automaticamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso use javascript então.

Dei uma pesquisada com JavaScript e só encontrei formas de mostrar a imagem caso o input for do tipo "file". No meu caso, eu preciso que a imagem seja mostrada de acordo com o valor da variável preenchido no input.

O exemplo com switch até funcionaria para o que eu preciso se eu não precisasse mostrar a imagem antes de salvar, mas acontece que no Contrato de Veiculos, tem a opção de imprimir, e se clicar em imprimir antes de salvar, não irá imprimir o Contrato com a imagem correta.

 

Tem alguma exemplo de Java Script para eu adaptar ou alguma outra forma de fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o input veículo for do tipo text utilize o .keypress ou .keydown, se for do tipo select utilize .on('change'), dê uma pesquisada no google sobre isso que citei que vai solucionar teu problema

Olá, Mateus!
Obrigada pela dica. Pesquisei sobre isso, e pelo que entendi o evento é disparado quando pressionada uma tecla. No meu caso, tenho uma variável em um input, então, quando clico no input que tem a variavel 'veiculo' e preencho, pela lógica ele deveria mostrar minha imagem de acordo com o valor, correto?
Bom, não entendo nada de JavaScript, então peguei uns pedaços de script que encontrei, e montei esta sequencia:
<script language="javascript">
function mudarImagemVeiculo (){
var veiculo = $("input[name='veiculo']");
if (veiculo == 'Auto')
getElementById("ImagemVeiculo") = "url('../images/checklist_auto.jpg')";
else
if (veiculo == 'Van')
getElementById("ImagemVeiculo") = "url('../images/checklist_van.jpg')";
else
if (veiculo == 'SUV')
getElementById("ImagemVeiculo") = "url('../images/checklist_suv.jpg')";
else
return false;
}

document.captureEvents(Event.KEYPRESS);

document.onkeypress = mudarImagemVeiculo;
</script>

E um id 'ImagemVeiculo' em uma tabela onde eu quero mostrar a imagem.

 

Mas não deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.