
mysql_num_rows מחזיר את המספר.alert, כדי לוודא שהפרמטרים מגיעים נכון לשרת.float כדי שהמוצרים יוכלו להתמקם לידו.הטקסט המלא של הדקות הראשונות בהרצאה «קורס PHP - הרצאה 9» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אוקיי, בוקר טוב, היום אנחנו נמשיך את ההרצאה על אג'קס עם PHP. בואו נראה מה אנחנו הולכים לעשות היום, ואז נבין. אוקיי, אז בואו ניכנס קודם כל לאתר סלזו שנמצא כבר ברשת, שאותו העליתי, ונסביר איזה רכיב אני הולך להסביר היום.
בואו נתאים כמה, אוקיי, בסדר, בואו סתם ניכנס כרגע לביצים, אוקיי? אז היום אנחנו נלמד ככה, אתם רואים שיש פה מספר עמוד אחד, בואו ניכנס לדוגמה ללחמים ומעסיקים, ללחמים, אוקיי?
ותראו, יש פה שתי עמודים, אוקיי? אם אתם תשימו לב, יש לי חמש מוצרים בשורה, כן? וחמש מוצרים בעמודה, זה יוצא 25 מוצרים לכל דבר.
אז היום מה שאנחנו נלמד בעצם בעזרת אג'אקס, איך לחלק, לעשות עימוד נכון למוצרים ולדוגמא, אם אני ארצה לדוגמא להגיע לדף השני, אני אלחץ פה שתיים, כן? בואו נמתין כמה שניות.
והנה אני נמצא בדף השני, כי אתם רואים כי חסר פה אובייקטר. אז באמת קפצתי כבר לדף השני. איך אני עושה את העימוד הזה?
גם את העימוד הזה אני מביא בעזרת אג'קס, וגם את המוצרים שהזנו, איך אני מביא אותם בעזרת אג'קס? ככה, לצורה כזאת יפה, עם דיווים, כן, כאלה עם קו כזה אפור, נחמד, עם תמונה, שם מוצר וכיוצא בו. זה מה שהיום אנחנו נלמד.
אוקיי, אתם רואים את זה כרגע כאן. הנה, אתם שמים לב שאני לוחץ, יש פה את הבעייתיות שכביכול זה נסגר ואני לא אסביר למה. בואו נתחיל.
אוקיי, אז בואו נעשה דבר כזה. אז כאן באינדקט.php יש לנו בעיקרון את התת-תפריט, נכון? הנה, אתם רואים שזה פה.
התת-תפריט שיצרנו זה ה-InnerDiv, ה-Div, כן? ה-InnerDiv. והנה, פה אנחנו יוצרים את ה-Div הפנימי הזה, שבעצם מייצג, כן? את הדבר הזה, כן?
השורה בקוד שמייצגת את הדבר הזה או את השורות הירוקות הללו נבנה כאן, אוקיי? בלולה אז, אוקיי? כאן אני אצטרך לעשות עכשיו איזשהו אירוע, גם, שנקרא onClick.
בואו נעשה ככה, נוריד איזה פה שורה כדי שיהיה לנו יותר נוח ונתחיל לבנות את האירוע של onClick, אוקיי? נרשום ככה, onClick, אני מאוד אוהב onClick, שווה ככה.
בואו ניקח לאיזושהי פונקציה ב-JavaScript שנקרא לה subMenuActivated, זאת אומרת, התת-תפריט הופעל, אוקיי? סאב מניו אקטיבייטד, סאב מניו אקטיבייטד, אוקיי?
ובואו נעבוד קודם כול על האימון. קודם כול, אתם יודעים, אולי לא, שכחתם, שלכל מוצר בטבלה, לדוגמה ביצים, יש לו תפריט ID, כן? ולתפריט ID יש הרבה הרבה מוצרים. אם אנחנו ניכנס רגע למסד הנתונים, תזכורת קטנה, אוקיי?
ה-VS והווירטואל שופ פרודקט קצרים שהזמנו לפה, נעשה איום, כן? אז אנחנו נוכל לראות לדוגמה שהמיין פרודקט איי-די, התפריט איי-די, סליחה, זה ביצים, כן?
29, יש לו הרבה מוצרים, כן? יש לו הרבה פרודקט איי-דים, נכון? זה התפריט איי-די, תחתיו יש הרבה הרבה מוצרים ששייכים לאותו תפריט איי-די. אז זה בעצם בעיקרון, אני צריך לשלוף מהטבלה הזאת, כן? את כל המוצרים של הביצים לדוגמה, או אם לדוגמה הייתי הולך, נגיד, סתם נגיד, תחת קטגוריה, תחת קטגוריה ללחמים ומאפים, נאמר שה-Main Product Edition זה 4, נגיד, אני סתם אומר,
ודברי מאפל במשקל זה 10, ועוגות בכירוש זה 11, אז תחת 10 ו-11 יהיו מוצרים. אני בעצם שולח כרגע את התפריט ID לפונקציה הזאת, ומשם, מהטבלה הזאת של פרודקט, אני אשלוף את כל המוצרים עם התפריט ID הזה.
אז בואו נראה איך אני עושה את זה. אז זוכרים שיש לי פה בעצם את המשתנה שמצביע למערך, הנה הדולר בירו, ניקח אותו ונשלח את הערך הבא, דולר בירו ואת השדה שאני רוצה, תפריט איי דיו.
מה עוד אני צריך לשלוח לפונקציה? בשביל זה אנחנו כרגע מדברים על אג'אט, אז כמו שראינו בהרצאה הקודמת של אג'אט, אני יכול לקחת דף PHP ולטעון אותו לתוך דיו, לתוך נגיד מכל שנמצא אצלי פה באינדקס PHP.
אז בואו קודם כל ניתן את השם של ה-div. בואו ניצור לנו פה קודם, או בעצם פה שתי divים, אוקיי? לאחד אני אתן לו id שווה product, ולאחד אני אתן לו id שווה, נקרא לו product number of pages, אוקיי?
product number of pages, אוקיי? אז בואו ניתן לפונקציה הזאת, submenu activated, בתור פרמטר, קודם כל את ה... הנה, זה כאן, תפריט ה-id. דבר נוסף שאני צריך לשלוח זה את השם של ה-div שאליו אני רוצה להתייחס.
אבל שימו לב, זה צריך להגיע בתור מחרוזת. בשביל שאם אני אעשה ככה, תסתכלו מה קורה, כן? יהיה לי פה טעויות. למה? כי כבר כביכול כל המחרוזת הזאת תחומה בין גרשיים. בשביל זה אני אשתמש בתו הבריחה, כדי להגיד שאני רוצה להתייחס אל זה בתור גרשיים, לא בתור סוף מחרוזת, כן?
לכן תו הבריחה זה backward slash, כן? בואו רק מונח קטן, זה מבלבל מתכנתית, עד היום נתקלתי בזה עם הרבה מתכנתית, אני אומר מה לעשות, סלאש, בק סלאש, מה, לא, זה הזה, תלך לשם, מושג נכון, כשהאלכסון הזה פונה לשמאלה, נכון, הוא מתחיל מפה והוא פונה שמאלה, נכון, לצד שמאל של אחר, זה נקרא Backwards Slash, כאילו סלאש אחורי, כשאני עושה דבר כזה, זה פונה ימינה, זה Forward Slash, אוקיי,
אז אני עושה Backwards Slash ואת הגרשיים, וכאן אני נותן את השם של הדיו, ואז בעצם הוא יקבל את זה בתור מחרוזת, שזה כאילו תחום בתוך הגרשיים. עוד פעם, Backward Slash ו-In. ככה אני שולח בעצם את השם של הדיו, שלתוכו, בעזרת אג'אקס, אני אטען את מספר העמודים שצריך להיות עבור כל תת-תפריט.
אוקיי, עכשיו אנחנו נשלח גם את הדף שאנחנו אמורים לטעון אליו, סליחה, את הדף שבעצם מטפל לי בעימוד, ואותו אנחנו נטען לתוך הדיו הזה, לכאן, אוקיי?
אז בואו לדוגמה גם אותו נתחום ככה, אם כן, בצורה כזאת, נתחום אותו ולזה בואו נאמר שזה יימצא בתוך תיקיית php, כן? בתוך תיקיית php ונקרא לקובץ הזה number, סליחה, number, נגיד, of pages, אוקיי? number of pages, נקודה, בסדר?
בואו פה ניתן כרגע עוד שתי פרמטרים ונסביר אותם בהמשך, נגיד, 0.25, אוקיי? זה פונקציה אחת, כן, שבעזרתה אני בעצם אטען את מספר, בוא עוד פעם נקרא לפונקציה, זה סאב מניו אקטיבייטיד, אבל עם פרמטרים אחרים, אוקיי?
תן לי לעשות את זה, P, פסיק, V, עוד פעם נקרא, כמובן עם אותו תפריט ID, אבל כרגע אני רוצה בעזרת האג'אקס לטעון את הפרודקט, אוקיי?
P, פרודקט, אוקיי? וכמובן פה אני אשנה את זה, אני אקרא לזה לדוגמה, מתוך PHP, סליחה, פרודקט ויירי, כן, נקודה, אוקיי, אבל בואו בינתיים נטפל כרגע רק באימון, אוקיי, אז בואו ניקח את זה ונשים את זה בתוך, בתור, סליחה, הערה, עשרה כזאת כאן, נדע שאחר כך נשמע, אוקיי, בואו קודם כל נטפל
בבעיה, כן, שאם אני ניגש פה ואני לוחץ, כאן לדוגמה, אז הכל טוב ויפה, זה לא נסגר לי, כן, זה פשוט הולך ל...
כן, הולך ל... ומביא, ולא נסגר לי פה התפריט הזה, אבל פה משום מה כשאני לוחץ זה נסגר. בואו נטפל קודם כל בזה. אוקיי, בואו נלך למניו אדלר ג'י-אט, שהוא בעצם עובד על התת-תפריט, הסברנו את זה כבר בארץ. בואו נעשה דבר כזה, נגדיר פה משתנה גלובלי, כן, ב-JavaScript, אז פשוט לפני כל
הפונקציה כבר נקרא לו גלובל, שווה אחד, אוקיי? עכשיו בואו ניצור את ה-Subמניו אקטיבייטסד, אוקיי? פונקשן, סובמניו אקטיבייטסד, ככה? אוקיי.
עכשיו, מה קורה פה? ברגע שלחצתי, בואו נעשה ככה, נגיד ככה, ופה זה בעצם ההלאמה וההצגה של התפריט, כן? ההלאמה וההצגה של התפריט, וכל הקוד הזה אמור להתרחש רק במידה, כן?
ובואו נאמר, וגלובל שווה אחד, נגיד ככה, if global, כן? אז בבקשה תבצע לי את כל הקוד הזה של ההצגה וההצגה, וכאן בואו נרשום ככה, global שווה אחד. כאן, ברגע שלחצתי על submenu activated, אני ארשום ש"גלורבל" שווה 0. בואו תסתכלו, תראו.
תסתכלו איך נסתרה הבעיה ונסביר גם למה. נעשה רפרש לביצים, ראיתם? אוקיי? שמתם לב? עכשיו אני לוחץ, הופ, ראית? זה לא סוגר, אוקיי? רק אם אני לוחץ על זה זה סוגר, אבל פה זה לא סוגר. למה? כי ברגע שאני בעצם לוחץ פה בביצים, כן?
אז מופעלת הפונקציה הזאת, הסאב-בן-יו-אקטיביידת. רשמתי ש"גלורבל" שווה 0. כשהוא מגיע לפה, הוא לא נכנס לפה, ולכן הוא לא מסתיר לי את האובייקט.
אבל, כן, כמובן, הנה, תסתכלו, הפונקציה הזאת open div נקראת פה, באבא, ב-div הראשי שמכיל את הכל, כבר הסברנו את הכל, כן? זה ברור שגם בלחיצה על התת-תפריט הוא נכנס לפה, ל-open div, אבל בגלל שפה אמרנו ש-global שווה 0, משמע, אם אני לוחץ על תת-תפריט, אל תיכנס לדבר הזה, אל תסתיר ותתקן,
זה רק במידה ונכנסתי לתת-תפריט. אבל במידה ולא נכנסתי לתת תפריט אלא לתפריט ראשי אז ברור שהוא נכנס לפה וגלובל מקבל ערך אחד הרי בהתחלה וגם פה אז ברור שהוא יעבוד על הצגה והסתרה אוקיי ככה פתרנו את הבעיה של ההצגה וההסתרה של הדיווי אוקיי בואו נמשיך הלאה בואו נעבור כן לקובץ לפונקציה יותר נכון לקובץ מניו אנלרג'י אס
ולקובץ סאב מניו אקטיבייטד ובואו נעשה דבר כזה נרשום ככה ארג שווה, זוכרים את המשתנה סתם? נתנו משתנה ארג, יכול גם לרשום איקס וכיוצא בו, כן? ניקח ככה את שם של הפונקציה, סאב מניו אקטיבטד, נקודה ארג, מה בעיקרון עשיתי?
כאן בעיקרון ארג זה יהיה מערך, כן? של משתנים שהפונקציה קיבלה באופן דינמי. זאת אומרת, אם אני אשלח 100 משתנים לסאב מניו אקטיבטד, יהיה לי בעצם בארג, הוא יכיל לי 100 ערכים, כן?
של כל המשתנים הללו. ארג שווה נותנים את שם הפונקציה נקודה ארגו אוקיי עכשיו בואו רק כדי שיהיה לנו יותר נוח ניתן פה הערה אנחנו רואים שהראשון זה התפריט איי-די נכון מה ששלח התפריט איי-די השני זה הדיב-ניים והשלישי זה הקובץ php נכון אז בואו נרשום ככה בתור הערה כן פרסט כן פרסט וארד איז ריטק סקנד וארד איז זה היה איך לעבוד כן כדי שאנחנו לא נתבלבל סקנד וארד איז
בואו נמשיך הלאה, כן, אוקיי, ככה, עכשיו, שימו לב, אני גם שלחתי פה, תקל הלאה, 0 ו-25, אנחנו נלמד על פונקציה בהרצאות היא חדשה, שנקראת limit, שעובדת עם דאטה בייסים, כן, כשאנחנו נקרא לזה מין לימיט ומקס לימיט, זה יהיה בעצם פורס אנד פייב וואר, המשתנה הרביעי והחמישי.
זה נכון, פורס, פורס, וואר, ומין, מינט, מינט, פיינט, וואר, זה, מה, אוקיי? אני לא אצטרך כל פעם לחזור לקוד להבין מה שלחתי. ככה זה בינתיים עבור, כן, ובואו נשלח את זה, זה, בעיקרון אפשר להשאיר.
אוקיי, אני כרגע את כל המידע, אני צריך להתחיל לעבוד. אוקיי, בואו נגדיר ככה, var, var, url, אוקיי, עכשיו תסתכלו, אתם זוכרים, כן, שבעיקרון אני צריך, לאן אני בעצם טוען את, סליחה, לאיזה קובץ אני מתייחס באג'אקס, אוקיי?
אז אני מתייחס לקובץ הזה, נכון? ל-phpfile, נכון? זה הקובץ שאני רוצה לטעון אותו באג'אקס, עם המתודה get. למדנו את זה בהרצאת אג'אקס, את הקובץ הזה אני אמשוך מהשרת עם המתודה get, אוקיי, אז זה ה-third one, נכון? זה PHP file to operative, זה third one. עכשיו, בגלל שאנחנו נמצאים במערך והוא מתחיל מאפס,
אז בעיקרון זה במקום שתיים, כן? באינדקס שלו זה שתיים, כי אני מתחיל מאפס. אז בואו נרשום ככה, hard במקום שתיים, כן? ואם אתם תשימו לב, אני אעשה פה alert, כן? URL, בואו רק נראה, אוקיי?
PHP number of pages, נכון? זה בעצם ה-URL, אותו אני הולך לטעון בעזרת אג'א, כן? לתוך ה-code. אוקיי, בואו נמשיך הלאה. עכשיו, אני צריך כמובן להעביר גם פרמטרים לקובץ הזה, כן, ובואו נסביר למה ואיך. בואו נתחיל לבנות את הקובץ הזה, כן?
הקובץ נקרא number of pages PHP. אוקיי, בואו נעביר את זה. קובץ A, גליד, או ככה. P, the file, save as, P.
אתם יודעים איך קוראים? רצינו לקרוא לו number of pages, אוקיי. בואו נתחיל לעבוד על הכל, אוקיי. קודם כל, בשביל שנוכל לעבוד עם העברית. header, content, type, time, text, yml, par, set ו-tf, אוקיי, זה בשביל שנוכל לעבוד עם
העברית. עכשיו אני הולך לעבוד גם עם דאטאביס, אוקיי? אז זוכרים את הפונקציה require שמוצאת? כן, require. דאטאביס, סליחה, הצבענו כבר על הקובץ הזה.
זה פלאס שפיתחנו שיכול לעבוד עם מסד דולר, בואו נגדיר אובייקט מסוג המחלקה הזה דולר דאטאבייס שווה new, השם של הקלאס דאטה ודולר דאטאבייס