585
צפיות
צפיות
43
תשובות
תשובות
מישהו יכול להגיד לי בבקשה מה
לא בסדר במשפט הupdate הזה ?
כי הוא מציב "+ Request.Form(Mess1) +" בעמודה Msg במקום הערך של Mess1
var SQL1 = "UPDATE messages SET Msg = ' + Request.Form(Mess1) +' WHERE id = 1 "
לא בסדר במשפט הupdate הזה ?
כי הוא מציב "+ Request.Form(Mess1) +" בעמודה Msg במקום הערך של Mess1
var SQL1 = "UPDATE messages SET Msg = ' + Request.Form(Mess1) +' WHERE id = 1 "
43 תשובות
אם אני לא טועה…
צריך לשים מרכאות… כמו עם &
למשל כך:
var SQL1 = "UPDATE messages SET Msg = '" + Request.Form(Mess1) +"' WHERE id = 1 "
אני רק יכול לומר לך
שהשליפה של הנתון מן הטופס שגוי. הוא צריך לבוא במרכאות כך:
Request.Form("Mess1")
בנוסף, האם השדה Msg הוא מספרי? אם לא הוא צריך לבוא במרכאות.
אוקיי פתרתי בעיה אחת, ואחרת צצה.
הנה הקוד המתוקן
for (var i = 1 ; i <=4 ; i++) {
var SQL = "UPDATE messages SET Msg = '" + Request.Form("Mess+i") + "' WHERE id = i " ;
oConn.execute (SQL);
}
והשגיאה שמוחזרת מצביעה על שורת הexecute ואומרת:
Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
/NewDesign/UpdateMsg.asp, line 10
מה זה אומר ואיך מתקנים את זה ?
ה-i צריך להיות מחוץ למחרוזות של
הארגומנט של REQUEST וגם מחוץ למחרוזת עצמה של השאילתא
var SQL = "UPDATE messages SET Msg = '" + Request.Form("Mess"+i) + "' WHERE id = "+i ;
ולדעתי יהיה יותר נכון להגדיר את המשתנה SQL מחוץ ללולאה כך לא תצטרך לעבור אולי עוד שגיאה ולחסוך משאבים (יצירה של משתנה זה משאבים)
Request ב-JS
צריך להיכתב ככה:
Request("property")()
Request.Form("property")()
Request.QueryString("property")()
סתם הערה:
לפי דעת גדולים (דגון), ציון האיזור המסויים לחיפוש הערך – רק מאט את התהליך. ז"א אם אתה לא חייב לכתוב (אבטחה, סדר קריאה, וכו') את הערך ככה: ()("")Request.Form – עדיף שתפנה אליו פשוט ככה: ()("")Request
השכלתי !
בעיה נוספת…
כשאני מנסה להוסיף גרש (') למסד נתונים אני עושה את זה כך:
Content= Content.replace(/'/g, "'");
והכל טוב ויפה והוא מוסיף את הvalue למסד, אבל כשאני קורא את זה בgetString הוא מחזיר לי שגיאה.
מישהו יודע למה ?
מסכים איתך
אם אני לא טועה הוא כתב שם "לפעמים"… כלומר, תמיד כדאי לבדוק.
לא ממש הבנתי מה עשית
אבל גרש בעקרון מכפילים, והכי טוב להחליף בייצוג שלו.
אוקיי, אני אנסה להסביר את הבעיה.
יש לי את הדף הבא, שמראה לי את ההודעות במסד:
http://i2.1asphost.com/yud1tk/manage.asp
הוא מציג לי את ההודעות ואני מעדכן אותן בעזרתו.
עכשיו למקרה שהמעדכן יכניס גרש, אז רציתי להחליף אותו בייצוג שלו:
Content= Content.replace(/'/g, "'");
עכשיו הבעיה, היא כשהוא מנסה לקרוא את ההודעה מהמסד כשיש בה גרש, והדף מחזיר שגיאה. שנחוץ '['
הנה המערך שמתקבל בgetString
var MsgArray=[['הודעה א'], ['הודעה ב'], ['הודעה ג'], ['הודעה ד']]
ואם מופיע שם גרש אז זה עושה בעיות והחלפתו במשפט הreplace הנ"ל לא עוזרת.
יש רעיון איך למנוע את השגיאה ?
בהההה, יצא גרש אמור להיות
& # 3 9
(רק בלי הרווחים)
הקפצונת !
למישהו יש מושג למה זה לא עובד?
שאלה.
באיזו שפה אתה מנסה שהשורה הזו תרוץ:
var MsgArray=[['הודעה א'], ['הודעה ב'], ['הודעה ג'], ['הודעה ד']]
?
זאת התוצאה, של קוד הASP הזה
var columnDelimiter="','" ;
var rowDelimiter="'], ['" ;
var str= oRs.GetString(2,-1,columnDelimiter,rowDelimiter) ;
str="var MsgArray=[['" + str.substr(0,str.length-4) + "]" ;
וזה אמור לרוץ בJS
ניסית ככה?
var MsgArray=new Array('הודעה א','הודעה ב','הודעה ג','הודעה ד')
כמו כן, אם יש גרש התוך אחד הערכים צריך להוסיף לפניו את ה-escape character (). כמו-כן, בשביל צריך לכתוב \.
אתה טועה!
דרך הכתיבה שאתה אומר מחייבת אותו להפעיל את הבונה (constructor) של מערכים שזה בזבוז משאבים (לקוח או שרת) כמו כן הוא מגדיר מערך דו מימדי
בדרך הקלה ביותר
מערך דו מימדי? מה?
אם כבר אז ככה:
var theMonths : String[] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
אבל זה לא ממש חשוב….
עוד פרטים :
הדוגמא שהראתה זה ב-Jscript.net
ולא ב-JSCRIPT רגיל.
תעשה את הקוד הקטן הבא (sirob)
<script type="text/javascript">
var anArray = [["a","b",c"], ["d","e","f"]], message="";
for (var i=0;i<anArray.length;i++){
for (var j=0;j<anArray[i].length;j++){
message+=anArray[i][j]+"n";
}
}
alert(message);
</script>
לא הבנתי מה הנקודה.
שאפשר לעשות מערך גם בסינטקס הזה
מישהו יכול לעזור לי בקשר לזה?
לא בטוח
נסה לעשות את זה בשליפה
SELECT Replace(fldDesc,"'", "&# 39;") AS repFldDesc, <fields> FROM tbl
(תוריד את הרווח שבין &# ל-39)
זו סתם דוגמא נסה לשנות את זה לצריכך ותגיד מה התוצאה
(אם זה עובד אז נסה לעשות זאת בהכנסה ולא בשליפה)
לדעתי אלו השורות הגואלות:
str = Replace(str, "", "\")
str = Replace(str, "'", "")
אני לא בדקתי את זה אף פעם
אבל אם דגון אמר ואתם מסכימים סימן שזה נכון
בעיית replace
השורות הבאות לא עובדות…
Content = Content.replace(/& #39;/g,"'");
Content = Content.replace(/& #34;/g,""");
זה אמור להחליף את הייצוג של גרש וגרשיים בסימן עצמו אבל זה מחזיר שגיאה של
"האובייקט אינו תומך במאפיין או בפעולות שירות אלה"
יש למישהו מושג למה ?
נסה כך:
Content = Content.replacenew RegExp("&# 39;","gi"),"'");
מחזיר שגיאה:
(מצורפת תמונה שלה)
הנה השורה הבעייתית ואין לי מושג איפה צריך להוסיף עוד ;
Content = Content.replace;new RegExp("'","gi"),"'");
תיקון
Content = Content.replace(new RegExp("&# 39;","gi"),"'");
תנסה ככה
Content = Replace(Content,"'","´")
Content = Replace(Content,"""",""")
תיקון
תוריד את הרווחים אחרי כל &
Content = Replace(Content,"'","& acute;")
Content = Replace(Content,"""","& quot;")
הוא רוצה להמיר את סימן
היוניקוד/ASCII לסימן הרגיל!
חזרנו לשגיאה:
"האובייקט אינו תומך במאפיין או בפעולות שירות אלה"
הנה הקוד המלא:
<% =str %>
var Content;
onload = function Fill() {
for (var i = 0 ; i <= MsgArray.length-1 ; i++) {
var id = 'Mess' + parseInt(i + 1);
id = id.toString();
Content = MsgArray[i] ;
alert(Content);
Content = Content.replace(new RegExp("'","gi"),"'");
Content = Content.replace(new RegExp(""","gi"),""");
document.getElementById(id).value = Content ;
}
}
רעיונות? אני כבר נואש….
נסה:
Content = ""+MsgArray[i];
תודה רבה זה עובד, אבל למה ?
מה בדיוק השורה הזו משנה ?
האמת היא שאני לא יודע למה זה קרה
לך אני פשוט עשיתי שהמשתנה יכיל מחרוזת.
כנראה המשתנה קיבל ריפרנס לסוג אחר ולכן זה קרה :-/
סליחה, אבל יש עוד בעיה קטנה,
אני מצטער שאני כל כך מעצבן, אבל זאת פעם ראשונה שאני מתעסק עם זה (די ברור).
הבעיה היא כשאני עושה enter (ירידת שורה), אני מנסה להמיר את זה כך לbr
Content = Content.replace(/n/g, '<br>');
אבל מוחזרת שגיאה של "קבוע מחרזות לא גמור"
מאיזושהי סיבה המערך שנוצר מהקריאה של הנתונים יורד שורה לפני הbr
וכך הוא נראה:
var MsgArray=[['אני ממש מקווה שהאנטר פועל
<br>שורה שנייה'], ['זה גרש &# 39;'], ['zdzsd'], ['דג']]
יש למישהו מושג למה זה קורה ?
שכחתי לומר לך
שרשר שאלותיך
הקפצונת !
תעשה ריפלייס בשרת
str = str.replace(/n/g, "r")
שרשר שאלותיך
הודעות לא משורשרות ימחקו מידית!
הreplace בשרת מחזיר אותה שגיאה
כי המערך שנוצר יורד שורה איפה שהירידת שורה בהודעה.
יש למישהו רעיון איך למנוע את זה ??
אפשר ככה נראה לי:
Content = Content.replace(vbcrlf, '<br>');
ב-VBS.
אם זה לא עובד נסה את vbcr או vblf אולי זה רק אחד מהם (אמור להיות הראשון).
לא בדיוק, אבל תודה, הסתדרתי לבד..