Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

koxta

Submeter Form sem botão do tipo submit

Mensagens Recomendadas

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

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.