הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   צריך איזה רעיון כללי ל ajax (https://hosts.co.il/forums/showthread.php?t=67978)

kfir91 04-10-08 11:29

צריך איזה רעיון כללי ל ajax
 
תראו יש לי פאנל ניהול שמעדכן רשומה במסד נתונים, הרשומה מוצגת ב ajax עם תקשורת ישירה עם השרת ככה שזה מעדכן לי את זה ברגע שעידכנתי בפאנל, עכשיו אני רוצה לעשות ברגע שאני לוחץ על "עדכן רשומה" בפאנל שחוץ מלעדכן את הדף עם הרשומה יקפיץ createpopup() בלחיצה הוא יסגר וזהו לא יציג יותר עד העדכן רשומה הבא... איך ?

ואפשר לעשות את זה ראיתי כבר בכמה אתרים ...

O-B 04-10-08 16:06

לא ממש הבנתי מה אתה מנסה לעשות..
ואיך בדיוק אתה מעדכן ברגע שזה מתעדכן במסד הקובץ AJAX רץ כל שניה?

kfir91 04-10-08 20:30

יש לי קובץ שמציג נתונים מהמסד עם תקשורת ישירה מהשרת כל פעם מציג תעדכני ביותר
אני מעדכן דרך הפאנל ניהול את המידע והוא מציג אותם.
אני רוצה ברגע שזה מעדכן יקפיץ חלון פופ יסגר ולא יוצג יותר עד העדכון הבא.

AlmogBaku 04-10-08 21:24

למה אתה צריך פופאפ?

daMn 04-10-08 21:39

ציטוט:

נכתב במקור על ידי kfir91 (פרסם 671181)
אני רוצה ברגע שזה מעדכן יקפיץ חלון פופ יסגר

?!
בכ"מ ממה שהבנתי, אתה פשוט צריך לעשות בדיקה כל X שניות עם יש נתונים חדשים עם AJAX.
אם יש אז שיקפיץ פופאפ|...|

kfir91 04-10-08 22:05

כן איך אני עושה את זה

daMn 04-10-08 22:37

תשתמש בsetTimeout שייכנס לפונקציה שתשלח בקשת AJAX שתבדוק אם הערך הנוכחי שווה לערך החדש, אם הוא לא שווה תציג פופאפ.

kfir91 05-10-08 00:44

בקודים נשמה איך?

WCMS 05-10-08 02:22

לפי החוקים אסור לבקש קודים,

אבל אתה משתמש ב
HTML קוד:

<script type="text/javascript">
setTimeout("Ajax()", 60000);
</script>

:)

kfir91 05-10-08 07:14

[QUOTE=Yuri198;671223]לפי החוקים אסור לבקש קודים,

אבל אתה משתמש ב
HTML קוד:

<script type="text/javascript">
setTimeout("Ajax()", 60000);
</script>

:)[/QUOTE

אבל כל הקטע זה איך בודקים איך המידע הנוכחי שווה למידע החדש:\
ככה בסדר :
קוד:

if (document.getElementById("content").innerHTML == xmlhttp.responseText)

Rom 05-10-08 14:47

לפי תאריך..
תשים משתנה עם התאריך הנוכחי, וכל פעם שמשהו משתנה, תשנה את התאריך בקובץ כולשהו, ואז כל כמה שניות תעשה בדיקה עם התאריך שווה, אם לא אז יש מידע חדש, ותשנה את התאריך במשתנה לתאריך החדש..

kfir91 05-10-08 15:41

ציטוט:

נכתב במקור על ידי Rom (פרסם 671253)
לפי תאריך..
תשים משתנה עם התאריך הנוכחי, וכל פעם שמשהו משתנה, תשנה את התאריך בקובץ כולשהו, ואז כל כמה שניות תעשה בדיקה עם התאריך שווה, אם לא אז יש מידע חדש, ותשנה את התאריך במשתנה לתאריך החדש..

השאלה שלי איך אני בודק שמשההו משתנה

daMn 05-10-08 19:50

ציטוט:

נכתב במקור על ידי kfir91 (פרסם 671256)
השאלה שלי איך אני בודק שמשההו משתנה

מצטער, אף אחד לא יכתוב לך את הקוד, יותר ממה שאמרתי אין מה לומר, תגלל ותלמד.

Rom 05-10-08 22:57

ציטוט:

נכתב במקור על ידי kfir91 (פרסם 671256)
השאלה שלי איך אני בודק שמשההו משתנה

אתה עושה לכל שינוי תאריך, ואז בודק לפי התאריך האחרון..

kfir91 06-10-08 09:11

לא עזרתם לי
תודה.

kfir91 06-10-08 12:33

ציטוט:

נכתב במקור על ידי Rom (פרסם 671355)
אתה עושה לכל שינוי תאריך, ואז בודק לפי התאריך האחרון..

שוב פעם להגיד?
איפה השינוי מתבצע באיזה קוד איך אני יודע שיש שינוי.
זה הקוד שמשנה :

קוד:

function ajax_read() {
        if(window.XMLHttpRequest) {
                xmlhttp=new XMLHttpRequest();
                if(xmlhttp.overrideMimeType) {
                        xmlhttp.overrideMimeType('text/xml');
                }
        } else if(window.ActiveXObject) {
                try {
                        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
                } catch(e) {
                        try {
                                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                        } catch(e) {
                        }
                }
        }

        if(!xmlhttp) {
                alert('Giving up :( Cannot create an XMLHTTP instance');
                return false;
        }
 
        xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState==4) {
                        document.getElementById("content").innerHTML = xmlhttp.responseText;
                }
        }

        xmlhttp.open('GET','results.php');
        xmlhttp.send(null);
 
}

function refresh() {
        ajax_read()
        var t;
        t=setTimeout("refresh()",1000);
}

איפה לעשות את מה שאמרת


כל הזמנים הם GMT +2. הזמן כעת הוא 10:10.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ