שלח תשובה

זירת השאלות

591
צפיות
30
תשובות

העברת תוכן תא מתיבה COMOBOX לתיבת ט

,‏ 24 באוגוסט, 2006

שלום !
בניתי דף ב-ASP ויצרתי תיבות טקסט ב-ASP איך אני יכול לבצע REQUEST לתוכן?
בשיטה הזאת זה לא עובד:  REQUEST("field_name")

תגיות:

30 תשובות

  1. avil הגיב:

    תגובה
    טוב אני אסביר יצרתי ב-ASP תיבת טקסט בצורה הזו:

    response.write  "<input type='text' name='hidden_snif' value='" &request("snif")&"'>"
    עכשיו התיבה הזאת מקבלת את הערך של תיבה משולבת(comobox) ואת הערך שמתי ב-VALUE כמו שאתה רואה עכשיו בניתי פונקציה שאמורה לקבל את הערך שבתיבה הזאת ולבצע משהו כשאני מנסה להעביר לפונקציה את הערך בצורה הזאת :
    request("hidden_snif") כמו שמעבירים  ערך מתיבה ב-HTML זה פשוט לא מעביר כלום אני חייב לציין שאין הודעת שגיאה אבל לא מגיעה כלום.
    אני לא יודע מה לעשות אולי זה בעיה של תחביר כי תיבה שיצרתי בקוד ASP ולא ב-HTMl אשמח עם תעזור לי
    תודה

  2. aviadfe הגיב:

    תבין דבר פשוט…
    אם אתה לא תעשה שני דברים:

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

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

    2. אם לא תציג את הקוד של הדף, לפחות חלקו העיקרי, לא אוכל לעזור לך.

  3. avil הגיב:

    שלום אולי משהו עיין בקוד ששלחתי פה

  4. aviadfe הגיב:

    איפה תגית FORM נעלמה?
    מכה דברים שלא הבנתי מה ניסית בהם:

    1. לא ברור מה רצית לעשות שם: לא ברור לי מה אתה רוצה שיעשה המשפט הבא: select_snif request("hidden_snif")

    2. למה אתה כותב את הדף על ידי קוד ASP? הרבה יותר קל ומהיר, לבנות טבלה בHTML, ולשלב בקוד רק את האלמנטים בתוכה.

    3. אתה רצית לבצע UPDATE של אובייקט ADO על רקורד סט? לא ברורה לי הפקודה UPDATE שלך…

    4. ולבסוף והכי חשוב, איפה תגית FORM? בלעדיה לא ניתן ליצור REQUEST

  5. avil הגיב:

    תגובה
    אל תתיחס לפונקציות SELECT_snif וUPDATE הם לא הבעיה
    הבעיה היחידה היא למה שאני עושה REQUEST לשם תיבת הטקסט שיצרתי
    בקוד הASP לא מגיע שום ערך
    בניתי טבלה בתוך לולאה הרי ככה מוציאים נתונים מDB לפנות טבלה ב-HTML ואח"כ לשלוף את הנתונים לתוכה ??
    לא ראיתי שעושים דבר כזה לא נראה הגיוני

  6. aviadfe הגיב:

    פתרון בעיות כללי
    1. ראשית, התעלמת ממה שכתבתי שאין לך תגית FORM. ללא תגית פתיחה וסגירה של form, השדות לא יכולים להגיב לפעולת request הטופס הוא היוצר של request.

    2. בהמשך לדברים, גם אחרי שתפתור את סיפור החוסר בתגית FORM, לדעתי יהיו שגיאות. זאת דעתי.

    הגדרת פונקציה בVBS זה כך:

    function fncName(arg(
    .
    .
    .
    End function

    לכן, ביקשתי שתסביר לי מה זה הSELECT ו-UPDATE, מה הם מייצגים?
    לדעתי כתבת את התחביר שלהם לא נכון. איני מכיר אפשרות לתחביר כזה בVBS.

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

  7. avil הגיב:

    תגובה
    את הפונקציות רשמתי כמו שכתבת רק שלחתי לך רק את הקריאות שלהם אז זה בסדר מבחינת התחביר
    עכשיו אם אני יגדיר ב-ASP את תגית ה-FORM לפני כל תיבת טקסט אני אוכל לקרוא לה ב-REQUEST ?
    כי עכשיו דוקא נסיתי וזה לא עבד
    לא התעלמתי ביצעתי את זה דוקא עכשיו
    אפילו ששם השדה ב-ASP הוא מוגדר בגרש אחד מכל צד אפשר לקרוא לו כמו מ-HTML?
    המטרה שלי הכללית לבנות טבלה שיש בה תיבות טקסט שמקבלות נתונים מ-DB
    ואני אוכל לשנות את הנתון בתיבת טקס ואז בלחיצת כפתור אי אשלח את העידכון לDB
    וזהו תפקידם של הפונקציות שבניתי הראשונה שהיא SELECT שמראה את הנתונים
    והשנייה עושה את העידכון עכשיו הבעיה שלא הצלחתי לעשות את ה-REQUEST לתיבות האלה פשוט לא מגיע שום ערך ואני לא מקבל שגיאה כל שהיא אז ואז שרשמת לי על התג FORM ניסיתי ועדיין לא עוזר מוזר קצת

  8. aviadfe הגיב:

    אז ככה.
    ללא תגית FORM לא תוכל לבצע request בכלל, היות ו request היא בקשת שליפת נתונים משורת כתובת, או מפרוטוקול HTTP.

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

    <form id="formname" method="post" action="<% ServerVariables("SCRIPT_NAME")"%>

    כמובן שבסיום הדף, תגית סגירה.

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

    ארגומנטי הפונקציה צריכים להיות עטופים בסוגריים

  9. avil הגיב:

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

  10. avil הגיב:

    שאלה קטנה
    מה אני רושם במקום ה-SCRIPT NAME אין לי שם סקריפטים

  11. aviadfe הגיב:

    תגובה לשני דבריך
    1. אין טעם להתווכח לגבי פונקציות. ב- VBS לפעמים עובד גם בלי סוגריים, אבל פונקציה בשפת VB (המקור לVBS) כותבים עם סוגריים, וכך גם VBS עצמה. אז שים סוגריים כי בעתיד זה יפריע לקוד שלך.
    חבל שאתה מתעקש במקום להבין.

    בכל מקרה, מעניין אותי לראות את המקור בגוגל שממנו ראית בלי סוגריים.

    2. אתה רושם פשוט כך:

    <form id="formname" method="post" action="<% ServerVariables("SCRIPT_NAME")"%>

    אתה לא מחליף את המילים SCRIPT NAME כי זה משתנה שרת קבוע, שמקבל תמיד את ערכי ה- ASP של הדף הנוכחי שהפעלת. כלומר, הוא פשוט עושה שליחה עצמית.

    אם זה לא מצליח לך, תנסה ACTION עם מרכאות ריקות, או עם שם הדף עצמו.

  12. avil הגיב:

    תגובה
    אני לא מתעקש פשוט כאשר ניסיתי עם סוגריים קיבלתי הודעת שגיאה ואז שהורדתי
    את הסוגריים זה עבד הנה לינק לאתר שראיתי קקריאה ךפונקציה ללא סוגריים:
    http://www.4guysfromrolla.com/webtech/faq/Beginner/faq5.shtml
    ד"א הצעת לי ליצור LOOP שיוצר טבלה ב-HTML יש לך אפשרות להראות לי דוגמא
    יותר נכון את התחביר של זה?
    תודה

  13. aviadfe הגיב:

    יהיו שני חלקים
    חלק א: ASP עליון

    .
    .
    .
    rs.Open SQLstr,conn
    …המשך קוד

    חלק ב: HTML + קצת ASP


    <html>
    <head>
    .
    .
    .
    </head>

    <body>
      
      <table>
          <tr>
               <td>
                    שם
               </td>

               <td>
                  משפחה
               </td>
          </tr>

    <%
    Do while not  rs.EOF
    %>
          <tr>
               <td>
                   <%= rs("Name") %>
               </td>

               <td>
                   <%= rs("Family") %>
               </td>
          </tr>

    <%
          rs.MoveNext

    loop
    %>

    </body>

  14. avil הגיב:

    תודה על העזרה
    אם אני עכשיו ארצה לשים תיבות טקסט אז זה יהיה ב-HTML ולא ASP נכון?

  15. aviadfe הגיב:

    אתה יכול… אבל…
    העניין פשוט.

    קוד ASP כתוב בשפות SCRIPT, כמו כל שיטות האינטרנט כמעט (למעט ASP.NET).
    קוד SCRIPT הוא קובץ שמפורשת בזמן ריצה. ככל שיותר קוד יכתב על ידי צד השרת, זמן הריצה יהיה ארוך יותר.

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

    אם אתה תכתוב אותם על ידי אובייקט response, זה יאט את עליית הדף במעט.

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

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

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

  16. avil הגיב:

    תגובה
    תודה על העזרה
    עכשיו אם אני רוצה לשלב תיבות טקסט שמקבלות את הנתונים מה-DB
    אני יוכל גם לעשות HTML או שזה חייב להיות בקוד של ASP ?

  17. avil הגיב:

    תגובה
    בסופו של דבר המטרה שלי שיהיו תיבות טקסט בטבלה ויהיה בהם את הנתונים מה-DB
    ואז אני יוכל לשנות את הנתונים ולעדכן את ה-DB
    השאלה היא אם אפשר בקוד HTML לעשות את זה שהתיבות טקסט יקבלו נתונים מה-DB ?

  18. aviadfe הגיב:

    פשוט ביותר
    התיבת טקסט תיכתב כך:


    <input type="text" id="text1" value="<%= rs("value") %>">

    הכלל מאוד פשוט.

    בכל מקום שאתה רוצה להזין את ערכי מסד הנתונים, אתה יוצר
    <%= %>

    ככה ובתוכו הנתונים

  19. avil הגיב:

    תגובה
    היי נסיתי וקיבלתי את השגיאה הבאה:
    Error Type:
    Microsoft VBScript runtime (0x800A000D)
    Type mismatch

    מזה אומר?

  20. aviadfe הגיב:

    שני דברים
    1. העתק שוב את הקוד כמו שהוא נראה אצלך כרגע.

    2. ליד השגיאה הזאת מופיעה בודאות גם מספר שורה. כתוב לי את המספר הזה.
    השגיאה הזאת אומרת שיש נתון חסר או שגוי.

  21. avil הגיב:

    תגובה
    הנה הקוד שרשום אצלי:
    <input type="text" name="formtext1" value="<%= rs("cable") %>">
    ומספר שורה זה 15 .

  22. aviadfe הגיב:

    התכוונתי
    את כל השורות. לא תמיד השורה מס' 15 היא גם הבעיה.

    תציג את כל הקוד הנוכחי

  23. avil הגיב:

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

  24. avil הגיב:

    היי מה שלומך?
    שיניתי את הקוד שלי ועשיתי כמו שהמלצת לי טבלה ב-HTML
    יש לי שאלה קטנה
    בתיבת טקסט יש פרמטר בשם NAME עכשיו בניתי לולאה שמוסיפה לערך של NAME כל פעם ספרה אחרת ניסיתי את התחביר הזה וזה נותן רק את המספר ללא השם תראה דוגמא:
    <input type="text" size='6' name="<%=cable& aa%>" value="<%=rs("cable")%>
    אני רוצה שה-NAME יהיה
    cable1
    ואחריו cable2
    איך כותבים את זה?

  25. avil הגיב:

    שאלה בנושא COMBOX
    שלום !
    בניתי דף ב-ASP שמבצע פקודת SELECT מ-DB
    רציתי לשאול אם יש אפשרות להגדיר שכאשר המשתמש בוחר משהו מה-COMOBOX
    זה יפעיל את פקודת ה-SELECT שכתבתי בדף ב-ASP ?
    תודה

  26. avil הגיב:

    תגובה
    רציתי להודות לך הסתדרתי עם מה שאמרת וגמרתי את רוב הדף שרציתי לבנות
    עכשיו עליתי על בעיה קטנה וקצת מוזרה יש לי תיבות טקסט שמקבלות נתונים מה-DB
    אבל משום מה מילים שיש בהם מרחאות -(") הוא לא מציג בתיבת הטקסט אלא רק את האותיות עד למרחאות מה יכולה להיות הבעיה ?? אם זה לא בתיבת טקסט זה מראה טוב
    תודה

שלח תשובה