ניסיתי לעשות כזה דבר :
PHP קוד:
<script LANGUAGE="JavaScript">
function check()
{
var start = 1159495554; // started safe - this is getting bigger;
//var timenow = 1159505555; // timeout
var timenow = <?php echo time(); ?>;
var diff = (timenow-start);
var days = Math.floor(diff/60/60/24);
diff -= days*60*60*24;
var hours = Math.floor(diff/60/60);
diff -= hours*60*60;
var mins = Math.floor(diff/60);
diff -= mins*60;
var seconds = diff
//document.getElementById('clock').innerHTML =
var text = days + ' Days ' + hours +' Hours ' + mins + ' Minutes ' + seconds + ' Seconds ';
document.getElementById('clock').innerHTML = text;
}
function init()
{
setInterval("check()",1000);
}
</script>
שזאת השיטה ש ATOM_BOMB הציע
PHP קוד:
var timenow = <?php echo time(); ?>;
הבעיה :
הוא מקבל את ה TIME באופן קבוע כלומר ברגע שהסקריפט סיים לרוץ הזמן נשאר כמו זמן הריצה
של הסקריפט
עלה לי רעיון, לעשות שילוב קטן של AJAX בשביל לקבל את הזמן של ה PHP
כלומר ליצור סקריפט חדש
PHP קוד:
<?php
echo time();
?>
ולקרוא לו clock.php
עכשיו לקבל את הערך שלו דרך AJAX ושבאופן קבוע ה AJAX ירענן את הדף ויקבל את הזמן של הלינוקס שבשרת וככה פתרתי את הבעיה.
השאלה שלי היא
איך אני מושך בעזרת AJAX את הנתונים מהדף ?
מפה זה אמור להיות פשוט , אבל אני לא כל כך מבין ב AJAX...
אז הסבר יהיה טוב.
עריכה :
---------
כמו שאמרתי, עשיתי את הדף של ההצגה של הזמן
ועכשיו עשיתי ככה :
PHP קוד:
function xmlhttpPost(strURL) {
var oXmlHttp = false;
var self = this;
if (window.oXmlHttpuest) {
self.oXmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
self.oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
self.oXmlHttp.open('GET', strURL, true);
self.oXmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.oXmlHttp.onreadystatechange = function() {
if (self.oXmlHttp.readyState == 4) {
alert(self.oXmlHttp.responseText);
}
}
self.oXmlHttp.send();
}
כאילו תעשה ALERT כל פעם שאתה מקבל תשובה מהדף
והרצתי אותו עם INTERVAL עם 1000 אבל הוא תמיד מקפיץ חלון
אם אותו מספר בדיוק כאילו הוא לא קורא את הזמן, כאילו הוא קרא אותו פעם ראשונה וזהו
מה הבעיה ?
אשמח לכיוון...
עריכה 2 :
========
אמרתי טוב,בואו נפשט את זה עוד יותר
עשיתי ככה :
PHP קוד:
function xmlhttpPost(strURL) {
var oXmlHttp = false;
var self = this;
if (window.oXmlHttpuest) {
self.oXmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
self.oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
self.oXmlHttp.open('GET', strURL, true);
self.oXmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.oXmlHttp.onreadystatechange = function() {
if (self.oXmlHttp.readyState == 4) {
alert(self.oXmlHttp.responseText);
}
}
self.oXmlHttp.send();
}
ועשיתי בתוך ה BODY ככה :
PHP קוד:
<a href="#" onclick="javascript:xmlhttpPost('time.php');">click here</a>
כלומר בלחיצה על CLICK HERE הוא יטען בעזרת ה AJAX את העמוד של ה TIME.PHP
ואז יבוא אלרט שיגיד לי את הזמן
הוא כל הזמן אומר את אותו הדבר, כלומר הוא לא מתרענן גם דרך ה AJAX...
ונוסף זה לא עובד ב FF
רעיונות ?