בעיה ב JAVASCRIPT

eytanchen

New member
בעיה ב JAVASCRIPT

יש לי טופס בעמוד, שבהחלפת SELECT צריך לרענן את העמוד, אך לשמור על התוכן שכבר הוזן בכל שדות הטופס. אני מגיע לפונקציה בעזרת onChange בשדה select המיועד. מכיוון שרב הטקסטים בעברית, אני מקדד אותם בעזרת escape. העניין הוא שלפעמים זה עובד לי ולפעמים לא ( הערה: Invalid Pointer). להלן הסקריפט: function URLencode(sStr) { encodedHtml = escape(sStr); encodedHtml = encodedHtml.replace(/\//g,"%2F"); encodedHtml = encodedHtml.replace(/\?/g,"%3F"); encodedHtml = encodedHtml.replace(/=/g,"%3D"); encodedHtml = encodedHtml.replace(/&/g,"%26"); encodedHtml = encodedHtml.replace(/@/g,"%40"); return encodedHtml; } function changePrdType(curPrdType){ //// get all form fields values from form formValues=""; formLength=document.productsUpdate.elements.length; for (i=0; i<(formLength); i++){ curField=eval("document.productsUpdate.elements["+i+"].name;"); curValue=eval("document.productsUpdate.elements["+i+"].value;"); curFieldType=eval("document.productsUpdate.elements["+i+"].type;"); if (curField!="prdType" && curValue!="" && curField!="form" &&curField!="textColor" && curFieldType!="hidden" && curFieldType!="checkbox" && curFieldType!="radio" && curFieldType!="image" && curFieldType!="submit" && curField!="file"){ formValues+="&"+curField+"="+URLencode(curValue); } } formValues="prdType="+curPrdType+formValues; window.location.href="adminProductsAdd.php?"+formValues; }
 

selalerer

New member
אתה צריך גם קוד צד שרת בכדי שזה

יעבוד. או ASP או CGI, שיקבלו מהבקשה שנשלחה להם את המידע (ב GET) ויציבו אותו בVALUE של השדות המתאימים. לא מספיק כאן צד לקוח.
 

eytanchen

New member
זו לא הבעיה

זו לא הבעיה שלי, איך להציב את הנתונים בשדות אחרי רענון הדף. הכל בנוי ב PHP. הבעיה שלי היא שהקוד יוצר שגיאה לעיתים בזמן הפעלתו (שינוי בחירה בשדה SELECT שמפעיל את הקוד ב onChange).
 

selalerer

New member
כנהוג: מה השגיאה?

(זה דיי ברור שייצטרכו את המידע הזה בכדי לענות על השאלה שלך)
 

freak2100

New member
הקוד הזה נכון, לא בקוד הזה הבעייה

בכל מקרה, כמה הצעות לייעול: 1. בפונקצייה URLencode - תגדיר את המשתנה encodedHtml עם var על מנת שיהיה מקומי ולא גלובאלי 2. eval זאת פונקצייה לא יעילה וממש ממש ממש ממש לא כדאי להשתמש בה. מה גם שבמקרה שלך אתה לא צריך להשתמש בה
3. במקום window.location.href עדיף לכתוב , location.href, על כך קרא כאן ושם
 

eytanchen

New member
צודק

אני גם משתדל להמנע מ EVAL בכל דרך אפשרית. אבל משום מה, במקרה הנ"ל, קיבלתי הערות שגיאה בגלל ה: elements.name
 
למעלה