Jump to content
koxta

Submeter Form sem botão do tipo submit

Recommended Posts

koxta

Boas pessoal,

Eu estou com um problema a alguns dias que não vejo forma de resolver.

Se alguém aqui já tivesse tido o mesmo problema ou que soubesse de uma possível solução agradecia imenso.

O objectivo é o seguinte:

Ter um file chooser em que ao seleccionar uma imagem ser logo lançado código php sem ter que recorrer a um botao do tipo Submit (ou seja com apenas um botao).

O que tenho é o seguinte (um botao do tipo File por trás de um link normal para esconder o botão tipico do File):

<form method="POST" action="#" enctype="multipart/form-data" id="fotos" name="fotos_name">
<div data-role="header" align="right">

<a href="index.html" data-theme="a">Voltar</a>

<input type="file" id="foto" name="foto" onchange="document.getElementById('submit').click();DoSubmit();" style="visibility: hidden; width: 1px; height: 1px"/>
<a href="" name="botao_up" onclick="document.getElementById('foto').click(); return false;"> Enviar Foto</a>
</div><!-- /header -->
</form>

Depois tenho a funcao DoSubmit() que é usada para submeter o Form sem ter que clicar num botao submit

<script>

function DoSubmit(){
if (confirm("Confirmar carregamento desta imagem?")) {
document.getElementById("fotos").submit();
}
return false;
}

</script>

E depois queria fazer qualquer coisa em php do género, para usar a imagem seleccionada:

if(isset($_POST['???'])){
echo "teste";
    $foto = $_FILES["foto"];

Alguém tem alguma ideia? Já tentei usar if($_SERVER['REQUEST_METHOD'] == "POST") e usar tambem um botao <input type='hidden' id="submit" name='submit' /> como vi num post mas nao conseguir resolver o problema. Agradecia imenso a ajuda.

Cumprimentos

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites
HappyHippyHippo

isto não faz nada :

document.getElementById('submit').click();

não existe elemento com o id 'submit', além de não fazer sentido no código

---------

document.getElementById('foto').click();

isto também não faz sentido no contexto da descrição do problema, afinal é para enviar a foto no momento da selecção desta ou quando carregas neste elemento ?

---------

if(isset($_POST['???'])){

isto nunca irá funcionar, '???' é claramente um nome errado ...

no teu caso será 'foto' que é o atributo 'name' do input

-----------

existem uns quantos pontos que também não fazem sentido, mas estes três pontos são os mais gritantes


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
koxta

Tens razão, mas isso foi esquecimento meu.

No 1º ponto esqueci-me de tirar o código porque tinha andado com outras experiências.

O 2º ponto é apenas para "clicar" indirectamente no botao file a partir do link, uma vez que este está escondido.

E no 3º ponto, os ??? foi apenas exemplo, uma vez que não sabia o que meter. E que já tinha experimentado "foto" e não funcionou.

Share this post


Link to post
Share on other sites
HappyHippyHippo

vou então ignorar que o código que apresentaste é deliberadamente errado e não representativo do que tens ...

responde então a esta questão : a caixa de confirmação de envio da imagem é apresentada ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
koxta

Sim é.

Mas já achei uma alternativa para pôr a funcionar.

Meti o script do php numa página à parte (não sendo portanto necessário o if isset) e coloquei esta linha no Form: action="uploadscript.php". Assim ele vai buscar o que precisa de fazer à outra página quando o Form é submetido sem ser necessário verificar se clicou no botão ou não. Uma vez que se parte do principio que se isto aconteceu é porque o botão foi clicado.

Talvez não seja a melhor alternativa. Mas já me serve.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.