Autor Zpráva
HomerJay
Profil
Zdravím.
Dá sa cez PHP spraviť odpočet, povedzme 10 sekúnd a následne vykonať nejakú PHP akciu? Povedzme že človek príde na stránku index.php, spustí sa odpočet na 10 sekúnd a o 10 sekúnd sa vykoná akcia if(**** == true){} . Nepotrebujem aby sa ukazoval aj odpočítaný čas, teda že za sebou pôjde 5,4,3,2,1, na to by bolo treba asi JavaScript, chcem len toto. Teda človek príde na stránku a o 10 sekúnd vykoná PHP akciu. To je všetko.
Vďaka.
mattyZEM
Profil
sleep()? Ale tady by jsi se koukal na bílou stránku.

Jedině setTimeout() + AJAX.
WertriK
Profil
sleep, ale tipuju, že to nebude právě to co chceš.
HomerJay
Profil
Počkať, prečo by nešlo urobiť takto ? :

include "stranka-hore.php";

sleep(10);
// FUNKCIA

include "stranka-dole.php";


(stranka-hore a stranka-dole obsahujú HTML kódy čo sa nachádza na stránke pred a po scripte)


EDIT: mattyZEM - AJAX? Ako ho tu využijem na vykonanie PHP scriptu?
Nox
Profil
jak píše mattyZEM setTimeout+ajax... ajax posílá požadavky na nějakou stránku, takže prostě pošleš požadavek na php skript.... něco si o tom přečti
HomerJay
Profil
No našiel som takúto kravinku - http://www.w3schools.com/ajax/default.asp
Kód je tu: http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first , teda:

<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>

</body>
</html>



Z čoho som pochopil že po kliknutí na "Change Content" sa vykoná funkcia loadXMLDoc() - čo by som asi mohol využiť na načítanie PHP funkcie, avšak stále nechápem ktoré je loadXMLDoc().
mattyZEM
Profil
Uprav řádek #21 na soubor který chceš otevřít.
HomerJay
Profil
Ďakujem :) Takže nejako takto by to mohlo fungovať..?

include "stranka-hore.php";

<script type="text/javascript">
function loadXMLDoc()
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","mojsubor.php",true);
xmlhttp.send();
}


var time = setTimeout(loadXMLDoc(),10000);
</script>

include "stranka-dole.php";
Nox
Profil
HomerJay:
zkus a uvidíš ;)
HomerJay
Profil
Nj, dačo také som čakal, aj tak vďaka :D
HomerJay
Profil
Nuž, nefunguje. Mám to takto:

echo '
	<script type="text/javascript">
		function loadXMLDoc()
		{
		if (window.XMLHttpRequest)
		  {// code for IE7+, Firefox, Chrome, Opera, Safari
		  xmlhttp=new XMLHttpRequest();
		  }
		else
		  {// code for IE6, IE5
		  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		  }
		xmlhttp.onreadystatechange=function()
		  {
		  if (xmlhttp.readyState==4 && xmlhttp.status==200)
		    {
		    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
		    }
		  }
		xmlhttp.open("GET","do.php?what=download&file='.$_GET['f'].'",true);
		xmlhttp.send();
		}
	var time = setTimeout(loadXMLDoc(),10000);
	</script>
	


S Javascriptom dáko extra neviem, takže netuším kde je chyba...
mattyZEM
Profil
Místo toho tvého echa by jsi to mohl celý hodit mezi ?><?php ;-)

Mimochodem, podívej se na můj profil. V druhém mém nejnovějším tématu jsem psal celý AJAX script který je fakt jednoduchý na pochopení :) až na to že tam je to přes POST a ne GET :) ale to není nic nijak moc složitého upravit :)
HomerJay
Profil
Tak nič, už to mám celkom inak, nebolo treba AJAX, možno som sa od začiatku zle vyjadril, neviem, ale chcel som toto :) (sťahovať nemusíte, ide o ten odpočet)
__construct
Profil
Z toho názvu predpokladám, že chceš vyvolať sťahovanie súboru - zdá sa mi, že sa Ti to cez AJAX nepodarí .. ak som OT tak prepáč :)
HomerJay
Profil
Nie si OT, akurát to už mám hotové, príspevok nad tebou je výsledok :D

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0