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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=27048)

somebody 22-07-06 23:24

שאלה ב AJAX.
 
כתבתי את הקוד שמקבל+פולט את הנתונים לדף ב AJAX(JS).
עכשיו, יש לי פונקציה, ואל הפונרציה הזאת מישומה, אי אפשר לשלוח משתנה, שאני משתמש בו בפונקציה.
הינה:
PHP קוד:

  xmlHttp.onreadystatechange=SChanged;
  
xmlHttp.open("GET",url,true);
  
xmlHttp.send(null);
}

var 
MainParantIDForPrint;
function 
SChanged(){
  if(
xmlHttp.readyState==|| xmlHttp.readyState=="complete")
    
document.getElementById("Cat_1").innerHTML+=xmlHttp.responseText ;


כמובן שהחלק הראשון זה רק חלק מפונקציה, לא כל הפונקציה, אלא רק החלק הצפציפי שאני שולח איתו את המידע לפונקציה SChanged.
עכשיו אני רוצה לקבל בSChanged את המשתנה MainParantIDForPrint בצורה הבא:
PHP קוד:

SChanged(MainParantIDForPrint

הבעיה היא שאני לא יכול!
הכי אני מפעיל את הפונקציה הזאת דרך כאן:
PHP קוד:

xmlHttp.onreadystatechange=SChanged

אז שיניתי את זה לזה:
PHP קוד:

xmlHttp.onreadystatechange=SChanged(ID); 

וכמובן שID זה משתנה מוגדר, משתנה שאני מקבל בפונקציה הזאת(הפונקציה שכתבתי כאן רק חלק ממנה. ו ID בטוח יש בו מידע).
ושאני עושה את זה, הדפדפן מראה לי ERROR, ושאסור לעשות כזה דבר.

יש אולי דאך לעקוף את זה?
מה שאני רוצה לעשות בעצם זה, זה:
PHP קוד:


var MainParantIDForPrint;
function 
SChanged(MainParantIDForPrint){
  if(
xmlHttp.readyState==|| xmlHttp.readyState=="complete")
    
document.getElementById("Cat_"+MainParantIDForPrint).innerHTML+=xmlHttp.responseText 

וכן, האלמנטים האלו קיימים, אני לא שולח למשהו ריק. אני שולח ל DIV שיש לו את ה ID הזה.

משהו אולי יודע איך אפשר לערוף את זה או משהו?

RS324 22-07-06 23:46

נראה לי ב JS שכשאתה מגדיר משהו הוא תקף גם בתוך הפונקציה, אז תנסה לעשות
var id=5;
ותנסה להשתמש בזה בתוך הפונקציה

somebody 23-07-06 00:22

כן הוא תקף בתוך הפונקציה..
אבל זה מראה שגיאה בעמוד.
זאת אומרת זה לא נותן לי לשלוח:
PHP קוד:

onclick="var ID=1; TheFunction(1,1);" 

זה מראה שגיאה..\:
(בעמוד)

RS324 23-07-06 00:50

תנסה ככה :

PHP קוד:

var MainParantIDForPrint;
function 
SChanged(){
  if(
xmlHttp.readyState==|| xmlHttp.readyState=="complete")
    
document.getElementById("Cat_"+MainParantIDForPrint).innerHTML+=xmlHttp.responseText ;

onclick="MainParantIDForPrint='1';SChanged()" 

כמובן שאת ה ONCLICK תפריד ותשים במקום שלו...

mlnn 23-07-06 01:03

אני לא מבין בAJAX וגם לא הכי בJS
אבל אתה בטוח שאפשר לעשות:
קוד:

onclick="var ID=1; TheFunction(1,1);"
זה לא אמור להיות ככה?:
קוד:

onclick="(var ID=1) && (TheFunction(1,1));"
נ.ב. אם תגובה זאת לא קשורה לכלום אני מצטער =\

somebody 23-07-06 01:08

ציטוט:

נכתב במקור על ידי RS324
תנסה ככה :

PHP קוד:

var MainParantIDForPrint;
function 
SChanged(){
  if(
xmlHttp.readyState==|| xmlHttp.readyState=="complete")
    
document.getElementById("Cat_"+MainParantIDForPrint).innerHTML+=xmlHttp.responseText ;

onclick="MainParantIDForPrint='1';SChanged()" 

כמובן שאת ה ONCLICK תפריד ותשים במקום שלו...

zvזה מה שעשיתי מיקום.
(אמרתי ID כי הרבה יותר קל לכתוב את זה מאשר MainParantIDForPrint כל פעם כדי לבדוק;).

mlnn
אני תמיד מפעיל בדרך הראשונה מספר פונקציות בארוע אחד, מישומה פה זה לא פועל..
ובחיים לא ראיתי משהו עם הדרך שאתה עשית:|
ננסה אותה חח..(למראות שלא ניראה לי שהיא תעבוד..ננסה:))


עריכה----
הצלחתי בסופו של דבר:)
תודה RS324(על זה שהזכרת לי שזה משתנה גלובלי שפועל גם בתוך פונקציה;)).

מה שבעצם הייתי אמור לעשות זה להגדיר את ID מראש ככה:
<script>
var ID;
</script>
(כמובן שכחלק מהקוד)
ואז לקרוא לזה ככה:
onclick="ID=1;fun(1,1);"


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

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