alves077 Posted August 29, 2013 at 06:57 PM Report #522922 Posted August 29, 2013 at 06:57 PM (edited) Boa tarde, Nem sei se estou na categoria certa, já que é uma mistura de js+php, Mas, tenho um form em php que manda para um outro ficheiro php. Quanto se carrega no botão de submit tenho um evento que chama uma função em js, onde crio um objeto do tipo XMLHttpRequest(). A minha questão é, como está recebe os dados dos outros ficheiros todo em conjunto, não é possível fazer com que vá recebendo a medida que o outro ficheiro envia? Exemplo do código js que tenho var oXHR = new XMLHttpRequest(); oXHR.upload.addEventListener('progress', uploadProgress, false); oXHR.addEventListener('load', uploadFinish, false); oXHR.addEventListener('error', uploadError, false); oXHR.addEventListener('abort', uploadAbort, false); oXHR.open('POST', 'teste.php'); oXHR.send(vFD); E o ficheiro teste.php, por exemplo: <?php echo "teste1"; (.....) echo "teste2"; (....) echo "teste3"; ?> Queria que ele fosse mostrando gradualmente os echo's, se é que me faço entender... e não envia-se a resposta toda de uma vez. Será possível só com este tipo de api's ? Obrigado pela atenção, alves077 Edited August 29, 2013 at 07:09 PM by alves077
nelsonr Posted August 29, 2013 at 07:31 PM Report #522925 Posted August 29, 2013 at 07:31 PM Boas, talvez possas fazer algo do tipo, na primeira chamada é retornado o numero de blocos disponiveis. Depois fazes tantas chamadas quantas definidas nesse numero, enviando o numero do bloco por parametro No ficheiro teste.php, envias os dados referentes ao bloco pretendido.
yoda Posted August 29, 2013 at 08:46 PM Report #522930 Posted August 29, 2013 at 08:46 PM http://php.net/manual/en/session.upload-progress.php before you post, what have you tried? - http://filipematias.info sense, purpose, direction
alves077 Posted August 31, 2013 at 11:12 AM Author Report #523057 Posted August 31, 2013 at 11:12 AM Obrigado pelas ideias. Estou a investigar por onde me guiar... Já estive a fazer algumas experimentações, segundo o meu caso com as sessões, mas não tive grande resultado. A ideia pelo que percebo, é anexar por uma sessão pré-definida os dados que quero, no meu caso do ficheiro caso do ficheiro teste.php, e no outro ficheiro leio com o ini_get, certo? Pelo que percebo também tenho que ter algo iniciado no php.ini para esta sessão funcionar corretamente. Sabem se o array que se anexa a sessão têm algum formato pré-definido? Obrigado pela ajuda, alves077
yoda Posted August 31, 2013 at 06:32 PM Report #523080 Posted August 31, 2013 at 06:32 PM http://stackoverflow.com/questions/76976/how-to-get-progress-from-xmlhttprequest before you post, what have you tried? - http://filipematias.info sense, purpose, direction
alves077 Posted September 1, 2013 at 03:08 PM Author Report #523120 Posted September 1, 2013 at 03:08 PM Já tentei algo do género, pelo que me parece, é o dizem no neste último link.. (...) oXHR.open('POST', 'teste.php'); oXHR.onreadystatechange = function (aEvt) { if(oXHR.readyState == 3 && oXHR.status == 200) { console.log(this.responseText); } } oXHR.send(vFD); Mas a resposta chega sempre num só momento. Não consigo fazer o efeito de feedback que queria.. Não sei se consigo só com que estou a usar esse efeito.. Chega sempre a resposta em conjunto, queria o efeito como se fosse um "socket" mal o teste.php deva uma resposta (echo) ele apareceria na página original... Obrigado pela atenção, alves077
yoda Posted September 1, 2013 at 07:50 PM Report #523137 Posted September 1, 2013 at 07:50 PM Quando corres um script PHP, o mesmo é tratado por completo e a resposta devolvida no fim, isto inclui o upload de ficheiros. Não dá para fazer o que queres só com esse código, tens de usar ora Flash ora outro método. O HTML5 supostamente dava para saber +- a percentagem do ficheiro concluída, mas nunca usei esse método. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
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