Pergunta

Eu tenho uma imagem com a qual links para outra página usando <a href="..."> <img ...> </a>.

Como posso fazer isso fazer uma postagem como se fosse um botão <input type="submit"...>?

Foi útil?

Solução

<input type="image" name="your_image_name" src="your_image_url.png" />

Isso enviará o your_image_name.x e your_image_name.y Valores enquanto ele envia o formulário, que são as coordenadas X e Y da posição que o usuário clicou na imagem.

Outras dicas

Mais genérico apropriado usando JQuery biblioteca mais próximo() e enviar() botões. Aqui você não precisa especificar o formulário Witch que deseja enviar, envia o formulário em que está.

<a href="#" onclick="$(this).closest('form').submit()">Submit Link</a>

Parece que você está tentando usar uma imagem para enviar um formulário ... nesse caso, use<input type="image" src="...">

Se você realmente deseja usar uma âncora, precisa usar o JavaScript:

<a href="#" onclick="document.forms['myFormName'].submit(); return false;">...</a>

Tipo de entrada = imagem fará isso por você.

Não testado / pode ser melhor:

<form action="page-you're-submitting-to.html" method="POST">
    <a href="#" onclick="document.forms[0].submit();return false;"><img src="whatever.jpg" /></a>
</form>
 <html>

 <?php

 echo $_POST['c']." | ".$_POST['d']." | ".$_POST['e'];

 ?>

 <form action="test.php" method="POST">
      <input type="hidden" name="c" value="toto98">
      <input type="hidden" name="d" value="toto97">
      <input type="hidden" name="e" value="toto aaaaaaaaaaaaaaaaaaaa">

      <a href="" onclick="document.forms[0].submit();return false;">Click</a> 
 </form>

</html>


So easy.




So easy.

O que pode ser uma adição útil a isso é a possibilidade de alterar o pós-URL do botão extra para que você possa postar para URLs diferentes com botões diferentes. Isso pode ser alcançado definindo a propriedade 'ação' do formulário. Aqui está o código para isso ao usar o jQuery:

$('#[href button name]').click(function(e) {
    e.preventDefault();
    $('#[form name]').attr('action', 'alternateurl.php');
    $('#[form name]').submit();
});

O atributo de ação tem alguns problemas com as versões jQuery mais antigas, mas, no último, você estará pronto.

Algo como esta página ?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>BSO Communication</title>

<style type="text/css">
.submit {
    border : 0;
    background : url(ok.gif) left top no-repeat;
    height : 24px;
    width : 24px;
    cursor : pointer;
    text-indent : -9999px;
}
html:first-child .submit {
    padding-left : 1000px;
}
</style>
<!--[if IE]>
<style type="text/css">
.submit {
    text-indent : 0;
    color : expression(this.value = '');
}
</style>
<![endif]-->
</head>

<body>
    <h1>Display input submit as image with CSS</h1>

    <p>Take a look at <a href="/2007/07/26/afficher-un-input-submit-comme-une-image/">the related article</a> (in french).</p>
    <form action="" method="get">
        <fieldset>
            <legend>Some form</legend>
            <p class="field">
                <label for="input">Some value</label>

                <input type="text" id="input" name="value" />
                <input type="submit" class="submit" />
            </p>
        </fieldset>
    </form>

    <hr />
    <p>This page is part of the <a href="http://www.bsohq.fr">BSO Communication blog</a>.</p>

</body>
</html>

Não se esqueça do elemento "botão" que pode lidar com mais um pouco de html dentro ...

Substituímos o botão Enviar por isso o tempo todo nos formulários:

<form method="post" action="whatever.asp">
<input type=...n

<input type="image" name="Submit" src="/graphics/continue.gif" align="middle" border="0" alt="Continue">
</form>

Clicar na imagem envia o formulário. Espero que ajude!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top