koxta 0 Denunciar mensagem Publicado 17 de Maio de 2013 (editado) 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 18 de Maio de 2013 por brunoais geshi Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 17 de Maio de 2013 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 Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
koxta 0 Denunciar mensagem Publicado 17 de Maio de 2013 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 1185 Denunciar mensagem Publicado 17 de Maio de 2013 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 Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
koxta 0 Denunciar mensagem Publicado 17 de Maio de 2013 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
bioshock 169 Denunciar mensagem Publicado 21 de Maio de 2013 Sim, é o procedimento normal. http://www.w3schools.com/html/html5_form_attributes.asp Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites