שלח תשובה

זירת השאלות

18 תשובות

  1. ניר טייב הגיב:

    אז ככה
    להעלאת קבצים ב-ASP רצוי להשתמש באובייקטים
    ישנם מס' אובייקטים כמו
    abcUpload
    aspUpload
    smartUpload

    תוכל למצוא את הקישורים אליהם בקישורים של מדור ASP

  2. jonatan44 הגיב:

    יש גם אפשרות להישתמש ב FSO
    אבל *מאוד* לא מוצלח ומאוד לא מומלץ.

  3. עוד שאלה קטנה…
    קודם כל סליחה על כל השאלות הטיפשיות….
    במאמר על שימוש בgetString יש את השורות הבאות:

        var columnDelimiter="",""
        var rowDelimiter=""], [""


    עכשיו הבנתי מה זה עושה, אני פשוט לא מבין את דרך הכתיבה הזאת, מה זאת אומרת לשים פעמיים "" אז פסיק ואז שוב פעמיים "", כלומר המפריד יהיה פסיק ? ובשני זה עוד פחות ברור (השורות יופרדו ככה ? [שורה 1] [שורה 2])
    אז שוב למה הפעמיים "" ?

    תודה מראש, מקווה שתוכלו לעזור.

  4. ניר טייב הגיב:

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

    "' fields in the table: ID, NAME, DESC
    [
    ["1", "nir", "the king"]
    ["2", "Uriks", "manager of the forum"]
    ["3", "Buildhome", "GAON"]
    ]

    ב-VBS אוךם זה לא מערך אבל הכוונה שלנו להעביר את הרשומות ללקוח (ז"א להעביר ל-JS צד לקוח) ולכן כאשר יודפס המשתנה שמכיל את ה-getString בין תגיות הSCRIPT יהיה לנו מערך

  5. שגיאה מוזרה בדף שאני מנסה לעשות.
    אני מנסה רק להציג בינתיים את כל ההודעות שבמסד.
    הנה הודעת השגיאה שאני מקבל

    þþùâéàú ÷åîôéìöéä ùì Microsoft JScript error '800a03f1'

    þþðãøù '}'

    /NewDesign/manage.asp, line 24


    והנה קוד הasp הבעייתי (שורה 24 זה  oConn = null;)
    מישהו יכול להסביר לי מה הטעות ?


    <!– ייבוא ההודעות–>

    <%@ Language=JScript Codepage=1255 %>

    <%
       // Opens a connection to the database
       var oConn = Server.CreateObject("ADODB.Connection");
       oConn.Provider = "Microsoft.Jet.OLEDB.4.0";
       oConn.Open (Server.MapPath("db/manage.mdb"));
       var sql="SELECT id, Msg FROM messages ORDER BY id "
        oRs.Open(sql,oConn) ;

        if (!oRs.EOF){
        var columnDelimiter="','" ;
        var rowDelimiter="'], ['" ;
        var str= oRs.GetString(2,-1,columnDelimiter,rowDelimiter) ;
        str="var MsgArray=[[" + str.substr(0,str.length-4) + "]]" ;
      
        delete oRs;
        oRs = null;
        oConn.Close
        delete oConn;
        oConn = null;
    %>
    <SCRIPT TYPE="text/javascript">
        for (var i = 0 ; i <= MsgArray.length ; i++) {
            var id = 'Mess' + i + 1;
            id =  id.toString();
            document.getElementById(id).value = MsgArray[i] ;
            }
    </SCRIPT>
    <!– סוף ייבוא ההודעות–>

  6. *הערה:
    אני מנסה להכניס את הערך של המערך לתוך תיבת טקסט (זה מה שהפונ' בjs עושה).

  7. ניר טייב הגיב:

    פתחת IF ולא סגרת אותו


    <%@ Language=JScript Codepage=1255 %>

    <%
       // Opens a connection to the database
       var oConn = Server.CreateObject("ADODB.Connection");
       oConn.Provider = "Microsoft.Jet.OLEDB.4.0";
       oConn.Open (Server.MapPath("db/manage.mdb"));
       var sql="SELECT id, Msg FROM messages ORDER BY id "
        oRs.Open(sql,oConn) ;

        if (!oRs.EOF){
        var columnDelimiter="','" ;
        var rowDelimiter="'], ['" ;
        var str= oRs.GetString(2,-1,columnDelimiter,rowDelimiter) ;
        str="var MsgArray=[[" + str.substr(0,str.length-4) + "]]" ;
        oRs.Close()
        delete oRs;
        oRs = null;
        oConn.Close()
        delete oConn;
        oConn = null;
    %>
    <SCRIPT TYPE="text/javascript">
        for (var i = 0 ; i <= MsgArray.length ; i++) {
            var id = 'Mess' + i + 1;
            id =  id.toString();
            document.getElementById(id).value = MsgArray[i] ;
            }
    </SCRIPT>
    <!– סוף ייבוא ההודעות–>
    <% } %>


    שים לב שהוספתי () לשיטת ה-CLOSE של החיבור וגם הוספתי CLOSE ל-RS

  8. ניר טייב הגיב:

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

    <%@ Language=JScript Codepage=1255 %>

    <%
       // Opens a connection to the database
       var oConn = Server.CreateObject("ADODB.Connection");
       oConn.Provider = "Microsoft.Jet.OLEDB.4.0";
       oConn.Open (Server.MapPath("db/manage.mdb"));
       var sql="SELECT id, Msg FROM messages ORDER BY id "
        oRs.Open(sql,oConn) ;

        if (!oRs.EOF){
        var columnDelimiter="','" ;
        var rowDelimiter="'], ['" ;
        var str= oRs.GetString(2,-1,columnDelimiter,rowDelimiter) ;
        str="var MsgArray=[[" + str.substr(0,str.length-4) + "]]" ;
        oRs.Close()
        delete oRs;
        oRs = null;
        oConn.Close()
        delete oConn;
        oConn = null;
    %>
    <SCRIPT TYPE="text/javascript">
    <% =str %>
        for (var i = 0 ; i <= MsgArray.length ; i++) {
            var id = 'Mess' + i + 1;
            id =  id.toString();
            document.getElementById(id).value = MsgArray[i] ;
            }
    </SCRIPT>
    <!– סוף ייבוא ההודעות–>
    <% } %>

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


    str="var MsgArray=[[" + str.substr(0,str.length-4) + "]]"

    הנה לינק לדף שאני מנסה ליצור.
    זה פשוט לא עובד, אני לא יודע למה

  10. הנה הקוד העדכני ביותר,
    אני חושב שהמערך ריק ובגלל זה זה לא עובד…


    <!– תחילת ייבוא הודעות –>
    <%@ Language=JScript Codepage=1255 %>

    <%
       // Opens a connection to the database
       var oConn = Server.CreateObject("ADODB.Connection");
       oConn.Provider = "Microsoft.Jet.OLEDB.4.0";
       oConn.Open (Server.MapPath("db/manage.mdb"));
      var oRs = Server.CreateObject("ADODB.Recordset") ;
       var sql="SELECT id, Msg FROM messages ORDER BY id "
        oRs.Open(sql,oConn) ;

        if (!oRs.EOF){
        var columnDelimiter="','" ;
        var rowDelimiter="'], ['" ;
        var str= oRs.GetString(2,-1,columnDelimiter,rowDelimiter) ;
        str="var MsgArray=[[" + str.substr(0,str.length-4) + "]]" ;
        oRs.Close()
        delete oRs;
        oRs = null;
        oConn.Close()
        delete oConn;
        oConn = null;
    %>
    <SCRIPT TYPE="text/javascript">
    <% =str %>
        for (var i = 0 ; i <= MsgArray.length ; i++) {
            var id = 'Mess' + i + 1;
            id =  id.toString();
            document.getElementById(id).value = MsgArray[i] ;
            }
    </SCRIPT>
    <% } %>
    <!– סוף ייבוא ההודעות–>

  11. ניר טייב הגיב:

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

  12. ניר טייב הגיב:

    יש לך בעיה עם סדר הפעולות
    תוסיף סוגריים על
    i+1

    var id = 'Mess' + parseInt(i + 1);

  13. ניר טייב הגיב:

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

  14. שוב תודה, עכשיו זה כמעט עובד
    הנה הבעיה האחרונה:
    זה המערך שהו יוצר:

    var MsgArray=[[message a'], ['message b'], ['message c'], ['message d']]

    וחסר גרש בהודעה הראשונה, זאת השגיאה היחידה.
    הנה השורה אשר יוצרת את המערך:

    str="var MsgArray=[[" + str.substr(0,str.length-4) + "]" ;

  15. ניר טייב הגיב:

    בגלל ש-getString
    מתחיל את ההפרדה רק מהתחית התא השני אז תצטרך לעשות ככה:

    str="var MsgArray=[['" + str.substr(0,str.length-4) + "]" ;

שלח תשובה