• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

c3ejo0

formulário vs imagem

8 mensagens neste tópico

Boas Tardes!

Tenho um formulário que recebe uma lista de itens da base de dados. Cada um destes itens tem à frente uma imagem que serve para editar e outra para remover o respectivo item. A minha dúvida é como esta página envia para a seguinte (que efectua a acção pretendida) o respectivo id ?

Já fiz coisas semelhantes mas antes a página de editar e remover eram distintas e  havia uma radiobox ou checkbox  que enviava o id e um botão de submeter, o que não acontece neste caso porque agora a hiperligação é feita através de clique na imagem respectiva

Aqui fica o código:

<form action="nextPage.php" method="get">
                <?php while ($linha = mysql_fetch_assoc($query)){ ?>
           	  <div class="lista_item"><?php echo $linha["nome_categoria"]; ?></div>
                    <div class="item_sign"><a href="categoria_edit.php"><img src="../_images/edit_icon.jpg" alt="Editar Categoria" width="35" height="35" /><input type="hidden" value="<?php echo $linha['id_categoria']; ?>" name="editar" /></a></div>
                    <div class="item_sign"><a href="categoria_delete.php"><img src="../_images/remove_icon.png"  alt="Remover Categoria" width="35" height="35" /></a></div>
                    <br />
                  
			<?php }?>
              </form>

O que penso é que se calhar não posso utilizar aqui  formulário, mas ao mesmo tempo a única maneira que eu tenho de enviar o id para a página seguinte é através do método  definido no formulário, ou não?

Obrigado a quem me puder ajudar

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou usas link, ou usas javascript para que quando carregues numa das opções, ele coloque o id e a acção no action do form e submeta os dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Yoda, obrigado pela resposta. Decidi ir através de link, mas julgo que não era desta maneira que tinhas pensado

consegui resolver criando  dois forms, um para cada acção:


<?php while ($linha = mysql_fetch_assoc($query)){ ?>
        <div class="lista_item"><?php echo $linha["nome_categoria"]; ?></div>
         <form method="get" name="form_categoria" action="categoria_edit.php">
              <div class="item_sign">
                     <a href="categoria_edit.php?id=<?php echo $linha['id_categoria']; ?>">
                           <img src="../_images/edit_icon.jpg" alt="Editar Categoria" width="35" height="35" />
                      </a>
               </div>
           </form> 
                    	
            <form method="get" name="form_categoria" action="categoria_delete.php">
                <div class="item_sign">
                      <a href="categoria_delete.php?id=<?php echo $linha['id_categoria']; ?>">
                            <img src="../_images/remove_icon.png"  alt="Remover Categoria" width="35" height="35" />
                        </a>
                   </div>
              </form>
              <br />
<?php }?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também serve assim. Normalmente prefiro usar javascript para alterar os parametros de um único formulário, nem me lembrei dessa :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o que eu achei desta forma é que assim um bocado à martelada / desenrasca. para ser sincero até estava a espera de levar uma "nega", mas ainda bem que assim não foi. acredito que por javascript tenha as suas vantagens, mas como eu não estava a ver como fazer decidi assim.

obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim tens razão! pensava que tinham que existir por causa do método, mas já testei e funciona na mesma! obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

também podias ter utilizado o method post utilizando uma form como, pelo que percebi, estavas habituado a fazer, apenas tinhas de substituir o habitual

<input type="submit" value="qualquer coisa">

por algo deste genero:

<input name="editar" type="image"  src="editar.png" style="border-width:0px;height:22px;width:136px;" />

assim iria aparecer a imagem tal como querias e ao precionares a imagem iria fazer exactamente o mesmo que o submit habitual, é muito util para formularios quando preferes criar os teus proprios botoes...

com o codigo do produto como querias terias algo do genero:

<form method="post" action="editar.php">
<input type="hidden" name="id" id="id" value="<?php echo $id_do_produto ?>" />
<input name="editar" type="image"  src="editar.png" style="border-width:0px;height:22px;width:136px;" />
</form>

isto como ja deves ter percebido ia exibir uma imagem de edição que ao ser precionada iria enviar o codigo do produto para a pagina editar.

se pretenderes ter a edição e eliminação na mesma página basta acrescentares mais um parametro:

<form method="post" action="editar.php">
<input type="hidden" name="id" id="id" value="<?php echo $id_do_produto ?>" />
<input type="hidden" name="accao" id="id" vue="1" />
<input name="editar" type="image"  src="editar.png" style="border-width:0px;height:22px;width:136px;" />
</form>

sendo que o valor um podia ser qualquer outro valor que irias receber na pagina editar e utilizarias para distinguir a operação a efectuar do genero:

<?php
if($_POST['accao']==1){
    /////////codigo de edição
}else if($_POST['accao']==1){
   /////////codigo para eliminar o produto
}else{
echo "accao não seleccionada";
}


?>

espero que tenha sido util

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora