בולנט - דברים מיוחדים...     פרוטו - בניית אתרים

Israeli ASP Organization

ארגון ה-ASP הישראלי

מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > ASP > טפסים

טפסים ג'נרים

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

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

If Request.QueryString("CustomerID") = "" Then the subroutine that displays the page Call DisplayInputForm Else Call DisplayPage End If

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

PromptForms טבלת

הטופס המיוחד בנוי בצורה גנרית, כך שיותאם אישית לכל סוג של שגיאה שבשליחת הנתונים. הטופס בנוי כך שהוא מקבל את ה-ID של השגיאה ובונה את הטופס לפי הנתונים שהוא קורא ממסד הנתונים.
מבנה הטופס הגנרי יראה כך:

<% Dim ID Dim objCommand Dim objRS Const adCmdText = &H0001 ID = Request.QueryString("ID") Set objCommand = Server.CreateObject("ADODB.Command") Set objRS = Server.CreateObject("ADODB.RecordSet") With objCommand .ActiveConnection = DSNName .CommandType = adCmdText .CommandText = "SELECT * FROM promptForms " & _ "WHERE promptForms.ID=" & ID & ";" .Execute End With objRS.Open objCommand %> <html> <head> <title><%=objRS("frmTitle")%></title> </head> <body> <h1><%=objRS("frmTitle")%></h1> <form method="<%=objRS("frmMethod")%>" action="<%=objRS("frmAction")%>"> <p><b><%=objRS("frmText")%></b><br> <input type="text" name="<%=objRS("frmFieldName")%>">   <input class="button" type="submit" value=" <%=objRS("frmButtonText")%> "> </form> </body> </html> <% objRS.Close Set objRS = Nothing Set objCommand = Nothing %>

כעת, כל שעלינו לעשות הוא לבדוק את המשתנים והערכים שנשלחו ובמידה ויש בעיה, לשלוח את הגולש אל הטופס הגנרי עם ה-ID המתאים לשגיאה.
להלן דף ASP אשר מצפה לקבל ערך משתנה prod_id:

<% foo.asp PromptID 1 Dim CustomerID = Request.QueryString("CustomerID") If Len(Trim(CustomerID)) = 0 Then Response.Redirect("prompt.asp?ID=1") End If %>

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



         

מחבר: אדם ליבסקירמת קושי: 0  ||  עוד לא דורגכל הזכויות שמורות ל-IAO ©

חנות לסטלן  |   מתכונים  |   חגי ישראל  |   פורטל משחקים  |   חנויות מחשבים ו-ציוד הקפי  |   מגזין מסטול לסטלן המצוי  |   קליפרים  |   גידול צמחים פרחים  |   ספא פינוק מושלם