בחזרה לעמוד הבית

טפסים בפלאש

 

הקדמה –

כאשר רוצים לשלוח מידע מסויים על גבי הרשת , ניתן להשתמש במספר צורות של תצוגה ולקיחת מידע . תצוגת מידע יכולה להתבצע בצורה סטטית – כלומר דפי html רגילים שלא מבוצע בהם שינוי בצד השרת , אלא כמו שהם מוצגים לצופה .

תצוגת מידע מתקדמת יותר יכולה להיות בצורה דינמית – דפי asp או cgi (או jsp או php והשד יודע מה עוד...) , דפים הנוצרים בצורה דינמית על פי פרמטרים מסוימים , לדוגמא : היום בשבוע , סוג המחשב של המשתמש , שם המשתמש , מידע רלוונטי מבסיס נתונים  וכו' . צורה זו מפותחת יותר מכיוון שהיא יוצרת לכל משתמש דף משלו , אבל הדף לא קיים באמת , אלא רק התבנית שלו שמקבלת את השינויים ומוצגת בצד המשתמש , בדפדפן .

הצורה המהירה ביותר לשליחת מידע על גבי הרשת , היא הצורה שבה עובדים הצ'אטים לדוגמא , או משחקים מרובי משתמשים ברשת וזה דרך java . כאשר נוצר קשר בין מחשב המשתמש לשרת נפתח בינהם שקע (socket) ודרכו זורם כל הזמן נתונים בין המחשב לשרת ולהיפך .

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

 

ולענייננו . הפלאש מסוגל לשלוח בכמה צורות של מידע . הדרך הנפוצה ביותר היא על ידי שליחת מידע לדפי asp (cgi וכו') , המידע מגיע בצורת request – בקשה מהשרת , והסקריפט בצד השרת מבצע את הבקשה ופועל בהתאם . הפורמט שבו נשלחת הבקשה הוא http. (הדרך השניה והיותר מתוחכמת היא על ידי פתיחת שקעים של xml (xmlsocket) ל-java , ומעבר של מידע בינהם , על זה בשיעור נפרד .)

 

כאשר נשלח מידע מדף html לדף asp הוא יכול להגיע בשתי צורות – GET או POST .

Get – שליחת כל המידע בבת אחת . כלומר , נשלחת בקשה לעמוד המבוקש ונשלחים כל הנתונים מהטופס ביחד . את הצורה הזאת ניתן לראות בשורת הכתובת , כאשר אנחנו נמצאים בעמודת מסויים ושורת הכתובת נהיית ארוכה (מאוד...) , זהו פורמט get  . הפורמט הזה אינו בטוח (מבחינת password ) מכיוון שניתן לראות את הערך שלו (לא בכוכביות) בשורת הכתובת בזמן השליחה . פורמט זה גם מוגבל לשליחת 256 תוים בלבד .

Post – שליחת המידע בחלקים , זוהי הצורה המומלצת לשימוש . צורת הבקשה היא :

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

בפלאש ניתן לשלוח ולקבל מידע בשתי הצורות האלה .

 

שליחת מידע

 

שליחת מידע על ידי טופס לדף asp או cgi יכול להתבצע באמצעות שתי פקודות .

 

GetURL(“mypage.asp”, target , method of send);

כמו השימוש המוכר ללינקים מדף פלאש . גם כאו אנחנו שולחים לדף אחר , אבל לתוך הדף הזה יישלחו נתוני הטופס (כל המשתנים שנמצאים על ה-_root) . שם הדף הוא הפרמטר הראשון , target מציין את הצורה בה ייפתח הדף ("_blank , _parent,_self” או “_top") , וה-method of send היא get או post .

בצורה זו המידע נשלח והמשתמש עובר לדף חדש ולא נשאר בדף הפלאש שממנו שלח את הטופס . כמובן שאם משתמשים ב-"_blank" הדף הקודם נשאר ונפתח עוד חלון .

 

הפקודה השניה לשליחת מידע היא:

 

loadVariables(“mypage.asp”,[target/level],vars=method of send);

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

LoadVariables(“1.txt”,0);

בדוגמא הזאת קריאת המשתנים מ-1.txt לתוך level0 .

השימוש בצורת השליחה של הפקודה מבצעת עבודה מאחורי הקלעים של סרט הפלאש , כלומר ניתן לבצע סקריפט של asp כמו לדוגמא שליחת mail בלי לעבור לדף ה-asp שעובד ולמעזה לא יראה שום שינוי לסרט . המגבלה היחידה בצורה הזאת היא שלמיטב נסיוני ניתן לשלוח נתונים רק ב-send . הפרמטר target/level מציין שבמקרה שדף ה-asp גם יחזיר נתונים לסרט , המשתנים שיחזרו יהיו ב-level המבוקש או ב-mc .

 

איך יוצרים טופס בפלאש ?

בואו ונשווה את הפלאש ל-html . כאשר רוצים ליצור תיבת טקסט למילוי המשתמש ב-html יוצרים <input type=text>   המקבילה בפלאש היא יצירת שדה טקסט המוגדר ב-text option כ- input text וקובעים את הגודל שלה . את שם המשתנה שישלח עם הטופס כותבים בתיבת variable . אם רוצים ליצור text area ניתן להגדיל את שדה הטקסט , וב-text option לבחור ב-multiline ו-word wrap .

רכיבים קצת יותר מתקדמים של טפסים ב-html כמו menu , checkboxes או radiobuttons , ניתן גם לבצע בפלאש אבל זה דורש קצת יותר תחכום (שיעור smartclips)

רכיב נוסף , חשוב ביותר ב-html הוא ה-<input type=hidden> שנועד במיוחד להעביר מידע בטפסים לשרת בלי שהמשתמש יראה אותם , כמו לדוגמא תאריך , מס סידורי וכו' .

בפלאש ניתן לעשות זאת על ידי יצירת משתנים ב-_root . כל משתנה שנשמר על ה-_root נשלח עם הטופס (לא משנה באיזה פריים) .

 

הטופס ישלח כרשימת כל המשתנים שהגדרנו ושהמשתמש הגדיר בצורה הבאה :

Var1=value1&var2=value2&var3=value3 …..

 

אם רוצים לשלוט באיזה משתנים יישלחו ואיזה לא ניתן לעשות זאת על ידי שימוש ב-get בלבד בצורה הבאה :

GetURL(“mypage.asp?var1=”+value1+”&var3=”+value3,”get”);

בדוגמא זו השמטנו את משתנה var2 והוא לא יישלח . כל המשתנים שלא רשומים במחרוזת לא יישלחו .

 

קובץ דוגמא לטופס בפלאש