am date.php
<?php
ob_start();
$i=0;
$max=10;
while($i<$max){
$i++;
sleep(1);
}
?>
onreadystatechange ar trebui sa imi apara intrun div in pagina unde apelez functioa care imi returneaza datele din date.php... in mod si timp real gen wait 1 , apoi dupa o secunda wait 2... etc insa ceea ce imi apare sunt la sfarsitul tranzactiei si parsarii tuturor rezultatelor adica. wait 1 wait 2 wait 3 .. etc , afisarea directa a tuturor datelor.. what;s wrong?
onreadystatechange
Moderator: Moderatori
ce faci tu nu o sa iti mearga.
la ce vrei tu sa faci trebuie un request ajax la o secunda, dar totul se poate rezolva foarte simplu numai cu js
la ce vrei tu sa faci trebuie un request ajax la o secunda, dar totul se poate rezolva foarte simplu numai cu js
Cod: Selectaţi tot
i=1;
function asd(){
//afisezi
i++;
setTimeout(asd,1000)
}
onreadystatechange ar trebui sa insemne.. ca la schimbarea starii obiectului apelat ar trebui sa mi se declanseze evenimentul... si normal as putea sa fac lucrul asta... in momentul in care se apeleaza datePage.php....
revin.... am datePage.php
$i=0;
$max=10;
while($i<$max){
echo "WAit...($i) <br />";
sleep(1);
$i++;
}
o parte din codul de pe pagina cu ajax request
....................................................
<script type="text/javascript">
function fetchData(url,dataToSend,objectID){
var pageRequest = false
if (window.XMLHttpRequest) pageRequest = new XMLHttpRequest();
else if (window.ActiveXObject) pageRequest = new
ActiveXObject("Microsoft.XMLHTTP");
else return false;
pageRequest.onreadystatechange = function() {
var object = document.getElementById(objectID);
object.innerHTML = pageRequest.responseText;
}
if (dataToSend) {
var sendData = 'sendData=' + dataToSend;
pageRequest.open('POST',url,true);
pageRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
pageRequest.send(sendData);
}
else {
pageRequest.open('GET',url,true);
pageRequest.send(null);
}}
</script>
</head>
<body>
<p>What Planet are you from?</p>
<div id="control" onclick="fetchData('dataPage.php',1,'message');"> Mercury </div>
...............................
what is wrong?
revin.... am datePage.php
$i=0;
$max=10;
while($i<$max){
echo "WAit...($i) <br />";
sleep(1);
$i++;
}
o parte din codul de pe pagina cu ajax request
....................................................
<script type="text/javascript">
function fetchData(url,dataToSend,objectID){
var pageRequest = false
if (window.XMLHttpRequest) pageRequest = new XMLHttpRequest();
else if (window.ActiveXObject) pageRequest = new
ActiveXObject("Microsoft.XMLHTTP");
else return false;
pageRequest.onreadystatechange = function() {
var object = document.getElementById(objectID);
object.innerHTML = pageRequest.responseText;
}
if (dataToSend) {
var sendData = 'sendData=' + dataToSend;
pageRequest.open('POST',url,true);
pageRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
pageRequest.send(sendData);
}
else {
pageRequest.open('GET',url,true);
pageRequest.send(null);
}}
</script>
</head>
<body>
<p>What Planet are you from?</p>
<div id="control" onclick="fetchData('dataPage.php',1,'message');"> Mercury </div>
...............................
what is wrong?
-
- Senior Member
- Mesaje: 2799
- Membru din: Joi Mai 27, 2004 4:36 pm
- Localitate: Bucuresti
- Contact:
UnTip scrie:onreadystatechange ar trebui sa insemne.. ca la schimbarea starii obiectului apelat ar trebui sa mi se declanseze evenimentul...
Asta si face, doar ca starile sunt:
* 0 (uninitialized)
* 1 (loading)
* 2 (loaded)
* 3 (interactive)
* 4 (complete)
nu se schimba starea la fiecare bit transferat.
UnTip scrie: si normal as putea sa fac lucrul asta... in momentul in care se apeleaza datePage.php....
sau nu ai putea, responseText este disponibil cand request-ul s-a finalizat (lucru pe care l-ai observat si tu, iti apare tot textul dintr-o data), mai exact o sa ai responseText cand readyState == 4.
Foloseste un iframe ca sa faci ceea ce vrei.
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera
mai am o problema.. de fapt nu chiar problema insa am nevoie de o solutie.. poate niste idei ...
am un fisier in care fac un post...totul ok in postul respectiv imi este afisat un div.. ce are un link cu href=# iar pe el am evenimentul onclick, eveniment ce imi face o cerere prin GET , ajax la un fisier updateDB, faza e ca as dori ca , sa zicem xmlHttp.responseText sa imi intoarca doua rezultate ... pe care eu sa le pot insera ca valori ale unor inputuri....
deocamdata imi intoarce un singur rezultat in cazul in care statementul update respectiv a fost ok....as dori sa imi intoarca valori diferite in inputuri cu id-uri diferite, ca sa pot afisa valorile update-ate ale celor doua inputuri.... any ideeas?
am un fisier in care fac un post...totul ok in postul respectiv imi este afisat un div.. ce are un link cu href=# iar pe el am evenimentul onclick, eveniment ce imi face o cerere prin GET , ajax la un fisier updateDB, faza e ca as dori ca , sa zicem xmlHttp.responseText sa imi intoarca doua rezultate ... pe care eu sa le pot insera ca valori ale unor inputuri....
deocamdata imi intoarce un singur rezultat in cazul in care statementul update respectiv a fost ok....as dori sa imi intoarca valori diferite in inputuri cu id-uri diferite, ca sa pot afisa valorile update-ate ale celor doua inputuri.... any ideeas?
-
- Senior Member
- Mesaje: 2799
- Membru din: Joi Mai 27, 2004 4:36 pm
- Localitate: Bucuresti
- Contact:
xmlHttp.responseText nu are cum sa fie "doua rezultate" insa il poti structura a.i. in JS sa-l poti sparge in "doua rezultate".
Ai putea trimite valorile encodate folosind JSON sau pur si simplu separate, de ex. valoare 1###valoare 2, si faci split in JS.
O alta varianta e sa trimiti ca raspuns un XML (ai grija sa setezi headeru' de XML si vezi ca in JS, o sa-l gasesti in responseXML) de ex:
Ai putea trimite valorile encodate folosind JSON sau pur si simplu separate, de ex. valoare 1###valoare 2, si faci split in JS.
O alta varianta e sa trimiti ca raspuns un XML (ai grija sa setezi headeru' de XML si vezi ca in JS, o sa-l gasesti in responseXML) de ex:
Cod: Selectaţi tot
<response>
<element id="x" value="1" />
<element id="y" value="2" />
</response>
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera
Înapoi la “Librarii Javascript”
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 7 vizitatori