שלח תשובה

זירת השאלות

1834
צפיות
9
תשובות

משתמש יוצר דף חדש

,‏ 5 בינואר, 2015

היי,
נתקעתי במשהו שאני מנסה לעשות.. הולך ככה:
המשתמש יקבל מספר תיבות טקסט שעליו למלא. בסופו של דבר כשיסיים למלא את התיבות הוא יקבל דף חדש עם תבנית שהכנתי מראש שכל תיבת טקסט תיכנס למקום אחר בדף…
האם יש אפשרות כזאת?
אחרי יצירת הדף, אני רוצה שאוטומטית ייכנס גם קישור לדף זה בדף שבו יש קישורים לדפים שכל המשתמשים באתר יוצרים…
חשוב!! הדף שייווצר יהיה בASP בכדי שהמאסטר פייג' יחול עליו (שזו עוד בעיה)…
(דוגמה פשוטה לזה היא השאלות כאן באתר (מה שאני שולח עכשיו) – אני לוחץ "שלח שאלה", אני מקבל תיבת טקסט של כותרת ושל תוכן.. הכותרת נכנסת לתבנית שעוצבה מראש וכך גם התוכן.. יווצר דף חדש במיוחד בשביל השאלה שלי וישמר בשרת… בסוף, הדף הזה שיצרתי נכנס גם כקישור בדף בית…)
אפשרי לעשות דבר כזה בASP? (או בכל שפה אחרת, מצידי אלמד עוד שפות בשביל זה.. חשוב לי מאוד)
תודה!!

תגיות: , ,

9 תשובות

  1. Roi Trigerman הגיב:

    הדרך לעשות זאת היא שמירת המידע שהמשתמש מזין במסד נתונים (Data Base), ובנוסף יצירה של דף יחיד, שיציג את המידע מתוך מסד הנתונים, כאשר את הדף הזה ניתן לעצב בכל צורה שהיא, עם שימוש ב-master page או כל דבר אחר.

    אז בעצם מה שאתה צריך זה:

    1. לבחור בסוג מסד הנתונים שבו תשתמש (יכול להיות MySql, MS-Sql, Access וכו').
    2. ללמוד איך לשמור בו מידע, ואיך לשלוף את המידע מתוך העמוד.

    אם תפרט באילו טכנולוגיות אתה משתמש אולי נוכל לכוון אותך יותר במדוייק.

  2. אני משתמש בASP.net…
    כמה שאלות…
    1) איזו פקודה בASP גורמת לכך שיווצר דף ASP חדש (שבנוי על מאסטר) בלי שאני מתערב.. הכל קורה בשרת?
    2) איך אני עושה שלמשל אם המשתמש בחר "משחק" מתוך רשימת גלילה, אז תופיע תמונה שהכנתי מראש, למשל דמקה? או נגיד אם הוא בוחר "קסם" תופיע תמונה של כובע קסמים (שהכנסתי מראש לפרוייקט.. זה לא מה שאני רוצה לעשות אבל סתם דוגמה פשוטה)? יש לי הרגשה שזה יקרה בJS… השאלה איך…
    3) איך אני עושה שאוטומטית הקישור לדף שהמשתמש יצר יופיע בדף הבית?
    תודה!!

  3. Roi Trigerman הגיב:

    לגבי פקודות שיוצרות עמודים חדשים בשרת, אני לא יכול לעזור לך עם זה.
    כמו שאמרתי, הדרך השכיחה לעשות זאת היא שבעמוד העריכה המשתמש בוחר מה יהיה תוכן הדף (כותרת, תמונה לרקע, תמונות נוספות, טקסט וכו'), וכשהוא לוחץ על "שמור", כל המידע הזה נשמר ב-database.
    אחר כך, המידע נטען לעמוד שבנית מראש (מעין שלד או template עבור כל ה"דפים" שהמשתמשים יצרו), כך שהעמוד נראה שונה עבור כל תוכן שכל אחד מהמשתמשים הכניס.
    אני מדגיש שוב – לא באמת נוצרים עמודי aspx ונשמרים בשרת, אלא יש עמוד שלד יחיד, שמתמלא כל פעם בתוכן שונה ממסד הנתונים.

    2, לא ממש הבנתי, אבל זה נשמע כאילו יש לך תפריט עם קישורים פשוטים שפותחים עמודים שונים באתר, כאשר לכל העמודים האלו יש אותו master page. האם לזה הכוונה? אם כן אז לא ממש צריך javascript בשביל זה…פשוט קישורים (אני באמת לא יודע מה הרמה שלך ומה אתה כבר יודע לעשות, אבל יש דרכים יפות ומתוחכמות יותר או פחות לעשות את זה).

    3. בהנחה שתשתמש בדרך שהסברתי קודם, המצב הוא שיש לך מסד נתונים עם טבלה שמכילה שורת מידע עבור כל עמוד שהמשתמש יצר, כאשר באחת העמודות יהיה שם העמוד למשל. כל מה שצריך לעשות זה שבטעינת דף הבית, לשלוף את כל שמות העמודים שהמשתמש יצר, כאשר לכל אחד מהם יש מזהה ייחודי (id בעמודה נוספת בטבלה), ואז למלא את התפריט בשמות העמודים האלו, כאשר הערך של כל בחירה יהיה אותו ה-id, מה שיאפשר לך לדעת איזה עמוד הוא מתכוון להעלות, ובהתאם למלא את העמוד היחיד (ה-template), בתוכן ממסד הנתונים (מהשורה בעלת אותו id).

  4. תודה רבה, אני חושב שהבנתי אותך.. אנסה את זה…
    אבל בעיה אחת פשוטה…
    אני יודע לכתוב דרך הקוד האחורי לקוד הלקוח… אבל איך אני כותב לקוד הלקוח של דף אחר בפרוייקט? ואיך אני מכניס את הדברים האלה לתוך טמפלט ולא לתוך דף לבן?
    תודה

  5. Roi Trigerman הגיב:

    קצת יותר מפורט:

    איך הטמפלט בנוי:
    הטמפלט הוא עמוד עם מקומות שמורים עבור כל אחד מהאלמנטים שאפשרת למשתמש להכניס בעמוד העריכה. שומרי המקום יכולים להיות תגיות Label עבור כותרות למשל, תגית תמונה ללא ערך ב-ImageUrl שלה עבור תמונות, תיבות טקסט למיניהן (נדיר יותר, כי בדרך כלל הטקסט יופיע גם ב-Label) וכו'.

    לכל עמוד שהמשתמש יצר במסד הנתונים חייב להיות מזהה ייחודי (ID), שבעזרתו תוכל לדעת איזה מידע לשלוף ממסד הנתונים, ולמלא בעזרתו את שומרי המקום, בשלב ה-page_load.

    הקישור לעמוד יכלול גם את אותו ה-ID בתור פרמטר ב-Query String. זה ייראה בערך ככה:


    <a href="/CustomUserPage.aspx?id=17">Movies Page</a>

    ואז באירוע ה- Page_Load אתר יכול לקרוא את ה-QueryString (משאיר לך לבדוק איך 🙂 ), לקבל את ה-id, למצוא במסד הנתונים, בטבלת עמודי משתמש, את הרשומה (שורה) בעלת id=17 , לשלוף את הנתונים מהרשומה, ולמלא כל תגית בערך המתאים.

    כדאי לך לבדוק וללמוד את הדרכים להעברת מידע בין עמודים.
    קיימות מספר דרכים, כאשר דרך הכתובת (ב-QueryString) היא אחת הדרכים, דרך ה-Session או ה-ViewState הן דרכים נוספות, ויש עוד כמה.

  6. היי, תודה רבה רבה וסליחה על החפירות!!
    לא הבנתי מילה ממה שאמרת.. אני יודע ASP בסיסי.. אבל זו כבר אשמתי ואני אחפור ואחפש מידע על כל המילים האלה שנתת פה…
    אבל רק שאלה אחת אחרונה…
    איך אני עושה שבכל פעם שהמשתמש כביכול "יצור דף חדש", יוטמע קישור לדף הזה בדף הבית או בדף שהגדרתי מראש שבו יהיו קישורים לכל הדפים שכל המשתמשים יצרו אי פעם?

  7. Roi Trigerman הגיב:

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

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

    משהו שמאוד עזר לי בהתחלה הוא ערוץ היוטיוב: https://www.youtube.com/user/kudvenkat
    אם תלך לקטגוריית פלייליסטים, יש שם פלייליסט שנקרא ASP.Net tutorial for beginners , שמכסה את כל הדברים הבסיסיים שאתה חייב לדעת (168 סרטונים, ואני ממליץ לראות כמעט את כולם).

    ושיהיה לך הרבה בהצלחה.

  8. היי, שוב תודה. מאז ששאלתי את השאלה הבנתי את כל מה שאמרת ואפילו יישמתי את זה כבר. מסתבר שאני לא ברמה בסיסית, פשוט הייתי צריך להפעיל קצת מחשבה על כל מה שלמדתי.
    תודה על הערוץ, אשתמש בו.
    עכשיו השאלה היחידה שנותרה לי זה עניין ההוספת טקסט (קישורים) לדף שכבר קיים… אבל נראה לי שהבנתי את זה..
    אעשה את זה פשוט בלולאה שתרוץ על כל הID במסד נתונים, ותיצור לכל ID קישור…. ככה כל פעם מחדש כשפותחים את הדף (בקוד האחורי)…. (עלה לי עכשיו שכתבתי את התשובה חחח אז אנסה ואראה אם זה עובד…)
    תודה

  9. Roi Trigerman הגיב:

    שמח שעזרתי. אם תשים לב, זה בדיוק מה שהסברתי לך בתגובה השנייה, בסעיף 3 🙂

שלח תשובה