koxta Posted May 17, 2013 at 08:44 PM Report #507866 Posted May 17, 2013 at 08:44 PM (edited) 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 May 18, 2013 at 10:22 AM by brunoais geshi
HappyHippyHippo Posted May 17, 2013 at 09:18 PM Report #507867 Posted May 17, 2013 at 09:18 PM 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 Portugol Plus
koxta Posted May 17, 2013 at 10:10 PM Author Report #507879 Posted May 17, 2013 at 10:10 PM 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.
HappyHippyHippo Posted May 17, 2013 at 10:14 PM Report #507882 Posted May 17, 2013 at 10:14 PM 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 Portugol Plus
koxta Posted May 17, 2013 at 10:26 PM Author Report #507885 Posted May 17, 2013 at 10:26 PM 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.
bioshock Posted May 21, 2013 at 12:46 PM Report #508207 Posted May 21, 2013 at 12:46 PM Sim, é o procedimento normal. http://www.w3schools.com/html/html5_form_attributes.asp
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now