Aviv C פורסם 2007 באפריל 23 Share פורסם 2007 באפריל 23 אני בונה כרגע אתר לפרוייקט לבגרות (HTML, JavaScript, ASP).החלטתי לבנות אתר קניות וירטואלי (לא אמיתי כמובן).אני צריך עזרה בקשר לעגלת הקניות באתר.מה שאני עשיתי זה:1) יצרתי משתנה Session שלתוכו נוספים המוצרים כשבין כל מוצר ומוצר מפריד הסימן ; (נקודה פסיק).לדוגמה, Battlefield 2142;FIFA 07;Need for Speed Carbon; זה מה שיהיה לי במשתנה ה- Session (בעגלה).2) בדף ה- ASP של העגלה השתמשתי בפונקציה Split שמקבלת מחרוזת ומחזירה מערך עם חלקים מהמחרוזת כשבין כל תא ותא מפריד הסימן ; .לדוגמה, ממשתנה ה- Session שכתבתי למעלה אני אוכל לקבל מערך שבו התא הראשון יכיל את הערך Battlefield 2142, השני את הערך FIFA 07, והשלישי את הערך Need For Speed Carbon ואלו הם למעשה המוצרים שבעגלה.3) במערך הזה השתמשתי כדי להראות את המוצרים בעגלה.4) נתקלתי קצת בבעיה כאשר רציתי להציג את הכמות של המוצרים אבל גם את הבעיה הזאת פתרתי בעזרת הפונקציות Filter ו- UBound.זה הקוד של הדף של עגלת הקניות (שלבים 2 - 4):<%Set Con = Server.CreateObject("ADODB.Connection")Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data/myData.mdb") & ";"Set RS = Server.CreateObject("ADODB.Recordset")mySQL = "SELECT name, price FROM Softwares ORDER BY name"RS.Open mySQL, Con, 3, 3cart = Split(Session("cart"), ";")allTotal = 0%><h1><center>העגלה שלך</center></h1><form action="showSoftware.asp" method="post" name="showSoftware"><input type="hidden" name="software" value="" /></form><table border="1" align="center"><tr><th>מוצר</th><th>כמות</th><th>מחיר</th><th>סה"כ</th><th>קנייה / הסרה</th></tr><%Do Until RS.EOFname = RS.Fields("name")amount = UBound(Filter(cart, name)) + 1price = RS.Fields("price")total = amount * priceallTotal = allTotal + totalIf amount > 0 Then%><tr><td><a href="JavaScript:showSoftware('<% =name %>')"><% =name %></a></td><td><% =amount %></td><td><% =price %></td><td><% =(total & " ¤") %></td><td><form action="removeFromCart.asp" method="post" name="remove"><input type="hidden" name="software" value="<% =name %>" /><input type="submit" value="הסר מהעגלה" /></form></td></tr><%End IfRS.MoveNextLoopIf allTotal > 0 Then%><tr><td colspan="3">סה"כ לתשלום</td><td><% =(allTotal & " ¤") %></td><td><button onclick="confirmBuy()">קנה מוצרים</button></td></tr><%End If%></table><%RS.CloseSet RS = NothingCon.CloseSet Con = Nothing%>רציתי לדעת מה אתם חושבים על הרעיון (הוא עובד אבל הצעות שיפור יתקבלו בברכה) ואם יש לכם רעיונות אחרים טובים יותר אני אשמח. קישור לתוכן שתף באתרים אחרים More sharing options...
Runny פורסם 2007 באפריל 23 Share פורסם 2007 באפריל 23 זו דרך סטנדרטית לבצע את מה שרצית וכך למעשה בהרבה מן המקרים העניין מתבצע.אם עלית על הרעיון לבד, כל הכבוד. קישור לתוכן שתף באתרים אחרים More sharing options...
עמיר פורסם 2007 באפריל 23 Share פורסם 2007 באפריל 23 כדאי אולי להשתמש במספר המזהה היחודי של הפריט ולא בשם שלו. וגם כדאי לשלוף מהמסד נתונים ישירות את הנתונים הרלוונטים בלבד, ולא לעבור על כולו ולראות האם הסכום גדול מ 0. קישור לתוכן שתף באתרים אחרים More sharing options...
Ghosthunter פורסם 2007 באפריל 23 Share פורסם 2007 באפריל 23 1) אני ממליץ לעשות את מה שOMNI הציע.2) אתה יכול לשמור בSESSION את מספר הפריטים, דבר שיחסוך לך זמן. קישור לתוכן שתף באתרים אחרים More sharing options...
NJorl פורסם 2007 באפריל 23 Share פורסם 2007 באפריל 23 עומס יתר על הזכרון של השרתתאר לך 100 משתמשים כל אחד קונה בבמוצע 5 פריטים כל פריט אתה שומר את כל המידע על הפריט (כולל התאור שלו ?) בערך כ- 30 בתים , תעשה את החשבון תכנות ב- JavaScript מועד לתקלות תאימות עם דפדפנים אחרים קישור לתוכן שתף באתרים אחרים More sharing options...
עמיר פורסם 2007 באפריל 23 Share פורסם 2007 באפריל 23 ה session נשמרים בדיסק, ונטענים לזכרון בעת הצורך, כאשר אז הם לוקחים זכרון שולי יחסית לאינטרפטר שמריץ את הקוד. למרות ששוב, עדיף לשמור את המזהה.ואיפה ראית פה JavaScript ? קישור לתוכן שתף באתרים אחרים More sharing options...
Aviv C פורסם 2007 באפריל 24 מחבר Share פורסם 2007 באפריל 24 כדאי אולי להשתמש במספר המזהה היחודי של הפריט ולא בשם שלו. וגם כדאי לשלוף מהמסד נתונים ישירות את הנתונים הרלוונטים בלבד, ולא לעבור על כולו ולראות האם הסכום גדול מ 0.דבר ראשון, לא עשיתי שדה של מזהה אז אני לא יכול להשתמש במזהה של הפריטים.שנית, איך אני יכול לשלוף רק את הנתונים הרלוונטים? לבנות משפט SQL עם הרבה ORים? זה לא יהיה מסורבל?אתה יכול לשמור בSESSION את מספר הפריטים, דבר שיחסוך לך זמן.איך אני יכול לעשות את זה? דוגמה מילולית או דוגמת קוד תעזור לי מאוד. קישור לתוכן שתף באתרים אחרים More sharing options...
עמיר פורסם 2007 באפריל 24 Share פורסם 2007 באפריל 24 אז תעשה שדה כזה, זה א"ב של מסדי נתונים. אולי זה יהיה מסורבל, אבל אם יש לך מסד נתונים ענק זה יותר נכון.בהנחה שמספר הפריטים בעגלה לא ענק זה לא כזה קריטי לעומת הדברים האחרים. קישור לתוכן שתף באתרים אחרים More sharing options...
Ghosthunter פורסם 2007 באפריל 24 Share פורסם 2007 באפריל 24 בSQL יש את IN שמאפשר לך לשלוף רשומות שעמודה מסויימת מוכלת ברשימה מסויימת.select * from items where item_id in (1, 2, 3, 4)ישלוף לך פריטים שהמספר הסידורי שלהן הוא 1, 2, 3, 4.http://www.1keydata.com/sql/sqlin.htmlובקשר לשני:Session("count") = 5 קישור לתוכן שתף באתרים אחרים More sharing options...
Aviv C פורסם 2007 באפריל 25 מחבר Share פורסם 2007 באפריל 25 בSQL יש את IN שמאפשר לך לשלוף רשומות שעמודה מסויימת מוכלת ברשימה מסויימת.select * from items where item_id in (1, 2, 3, 4)ישלוף לך פריטים שהמספר הסידורי שלהן הוא 1, 2, 3, 4.http://www.1keydata.com/sql/sqlin.htmlובקשר לשני:Session("count") = 5הבנתי את השורה של ה- SQL. תודה זה יעזור לי.בקשר לפקודה השנייה, במה מספר הפריטים יכול לעזור לי?חשבתי שהתכוונת לשמור את הכמות של כל פריט. קישור לתוכן שתף באתרים אחרים More sharing options...
Ghosthunter פורסם 2007 באפריל 25 Share פורסם 2007 באפריל 25 בהודעה הראשונה רצית לדעת איך אפשר לדעת את מספר הפריטים בעגלה. קישור לתוכן שתף באתרים אחרים More sharing options...
Aviv C פורסם 2007 באפריל 27 מחבר Share פורסם 2007 באפריל 27 סליחה, אתה צודק.טעות שלי.בכל מקרה, התכוונתי לכמות של כל פריט ואם יש דרך לשמור איכשהו את הכמות של כל פריט ופריט במקום לכתוב את אותו המוצר פעמיים. קישור לתוכן שתף באתרים אחרים More sharing options...
עמיר פורסם 2007 באפריל 27 Share פורסם 2007 באפריל 27 תעשה שהפורמט של המידע שאתה שומר הוא מס' פריט, כמות שלו, מס' פריט, כמות שלו וכו'.. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.