צפיות
תשובות
נתונים לא נכנסים לבסיס הנתונים
אני שולח נתונים מדף אחד לדף אחר שקולט את הנתונים אבל אני מקבל הודעה שגיאה, מה זה יכול להיות?
הקוד:
<%@ Language=VBScript %>
<% Response.Buffer=true %>
<%Response.Expires=-1%>
<%
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb") & ";"
%>
<html>
<body>
<%
Username = request.form("Username")
Password = request.form("Password")
FirstName = request.form("FirstName")
Function fixStr(str)
If str <> "" Then fixStr = replace(replace(str,"'","'"),"`","'")
End Function
Function fixStrVal(str)
If str <> "" Then fixStrVal = replace(str,"'","´")
End Function
Function fixSpace(str)
If str <> "" Then fixSpace = Replace(Replace(str," ","%20"),"'","'")
End Function
CheckSQL "select * from membersTBL where FirstName='" & fixStr(FirstName) & "' and Username='" & Username & "'" — line 32
set rs = server.CreateObject("ADODB.RecordSet")
rs.Open CheckSQL,DSN,3,1
If rs.EOF Then
rs.close
set rs = Nothing
%>
<b>allready there</b><br><br>
<%
set cn = server.CreateObject("ADODB.Connection")
cn.Open DSN
Else
rs.open "select max(id) as max_idnum from membersTBL"
dim idnum
idnum=rs("max_idnum")+1
SQL "insert into tstTBL values(CONVERT (INTEGER, '" & idnum & "'),'" & fixStr(FirstName) & "'"
cn.Execute SQL
%>
<b>good luck</b><br>
<%
End If
%>
</body>
</html>
זו ההודעת שגיאה:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'CheckSQL'
/jobnik/members_handler.asp, line 32
תודה מהפפר
49 תשובות
איך שוברים שורה בתיבת ALERT?
אם אני לא טועה
/n
מממ… לא עובד לי
קוד CSS פשוט שלא עובד
אני רוצה לצבוע את גבולות התיבה אבל זה לא עובד לי, הנה הקוד:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<style type="text/css">
.dd
{
BORDER-TOP-WIDTH: 11px;
BORDER-LEFT-WIDTH: 11px;
BORDER-LEFT-COLOR: #ff6600;
BORDER-BOTTOM-WIDTH: 11px;
BORDER-BOTTOM-COLOR: #ff6600;
BORDER-TOP-COLOR: #ff6600;
BORDER-RIGHT-WIDTH: 11px;
BORDER-RIGHT-COLOR: #ff6600;
}
</style>
</head>
<body>
<br><br><br>
<center>
<form name="details" action="dfas.asp">
<select class="dd" Name="year">
<OPTION Value=NO>1941</OPTION>
<OPTION Value=YES>1942</OPTION>
<OPTION Value=YES>1943</OPTION>
</select>
</FORM>
</center>
</body>
</html>
מה פיספסתי?
עד כמה שאני יודע
התכונה Border ב Select Option לא נתמכת טוב ב IE, נסה להגדיר Background ותראה שזה אכן פועל.
קוד.
לא משתנה לי
אתה יכול לתת לי דוגמא?
תראה,
אם מגדירים backgroung זה עובד, אם מגדירים border זה לא עובד, כנראה ש IE לא תומך בתכונה. נסה להציג את הדף במוזילה, בד"כ הם תומכים ב Css בצורה הטובה ביותר.
לא ניתן לשנות עיצוב של option
מלבד צבע הרקע וצבע הפונט
למה לא?
וואוו, איזה בעסה! תודה בכל זאת
תודה
אולי בגלל…
שרשמת
Username = request.form("Username")
Password = request.form("Password")
FirstName = request.form("FirstName")
ובגלל שלא רשמת החרזות
dim Username ,Password ,FirstName
כי השגיאה אומרת שחסריפ נתונים בשאילתא.
תנסה גם להדפיס את השאילתא כדי לראות האם משתנים לא רייקים.
יכול להיות
שהנתונים נשלחו בשיטה get ויכול להיות שנכנסת ישר לדף ולכן המשתנים ריקים
חסר לך אופרטור השמה…
שורה 32 היא:
CheckSQL "select * from membersTBL where FirstName='" & fixStr(FirstName) & "' and Username='" & Username & "'"
כשבעצם היא אמורה להיות:
CheckSQL ="select * from membersTBL where FirstName='" & fixStr(FirstName) & "' and Username='" & Username & "'"
תודה זהר, אבל עכשיו זה נותן הודעה
אחרת שאני לא מבין.
הנה הקוד:
<%
Username = request.form("Username")
Password = request.form("Password")
FirstName = request.form("FirstName")
Function fixStr(str)
If str <> "" Then fixStr = replace(replace(str,"'","'"),"`","'")
End Function
Function fixStrVal(str)
If str <> "" Then fixStrVal = replace(str,"'","´")
End Function
Function fixSpace(str)
If str <> "" Then fixSpace = Replace(Replace(str," ","%20"),"'","'")
End Function
CheckSQL = "select * from tstTBL where FirstName='" & fixStr(FirstName) & "' and Username='" & Username & "'"
set rs = server.CreateObject("ADODB.RecordSet")
rs.Open CheckSQL,DSN,3,1
If rs.EOF Then
rs.close
rs.open "select max(id) as max_idnum from membersTBL"
dim idnum
idnum=rs("max_idnum")+1
set cn = server.CreateObject("ADODB.Connection")
cn.Open DSN
SQL "insert into tstTBL values(CONVERT (INTEGER, '" & idnum & "'),'" & fixStr(FirstName) & "'" ——– line 46
cn.Execute SQL
%>
Thanks
<%
Else
rs.close
set rs = Nothing
%>
<b>allready there</b><br><br>
<%
End If
%>
זו ההודעה שגיאה:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'SQL'
תודה
אותה הודעת שגיאה על אותה טעות…
רק השורה השתנתה…
זה עובד עכשיו, תודה. אפשר משהו…
כללי?
לפעמים זה מוזר. אני עובד על משהו אבל אני לא בטוח שזה הדבר הנכון לעשות.
רציתי לדעת כמה דברים:
האם זה בסדר שאני משתמש בפונקציות האלו להחלפת הגרש והגרשיים בהכנסה.
האם הצורה שאני מבקש את ה ID הגבוה ביותר ומוסיף לו 1 ואז מכניס לבסיס הנתונים נכונה.
האם אפשר לקצר את הקוד או לעשות אותו מהיר או יעיל יותר?
תודה רבה על העזרה.
אממ…
לגבי שימוש בפונקציות שמחליפות את הגרש והמרכאות, זה אכן נכון, אבל אני היתי שם אותן בקובץ נפרד, וקורא לו (ב include, לדוגמא) בכל דף שצריך להשתמש בהן.
לגבי הצורה שבה אתה מבקש את ה id, לא הבנתי למה לא להשתמש פשוט במספור אוטומאטי… תוכל לשלוף את ה id האחרון שהוכנס ללא חדש,
לייעל את הקוד תמיד אפשר – לדוגמא, לתרגם אותו ל js…
גם לא הבנתי למה אתה שולף את כל השדות בטבלה, בחלק הזה:
CheckSQL = "select * from tstTBL where FirstName='" & fixStr(FirstName) & "' and Username='" & Username & "'"
set rs = server.CreateObject("ADODB.RecordSet")
rs.Open CheckSQL,DSN,3,1
If rs.EOF Then
rs.close
אז ככה…
העברתי את הפונקציות לדף INCLUDE, תודה.
הלינק שצירפת לגבי המספור האוטומטי נראה מעניין הבעייה היא שאני לא מבין מה הולך שם בדיוק. יש מצב למאמר איפהשהו בנושא?
שליפת השדות בדוגמא שנתת מתבצעת מפני שאני רוצה לבדוק שהמשתמש לא קיים בבסיס הנתונים ורק במידה והוא לא קיים להכניס אותו. זה בסדר או שאני אמור לעשות את זה אחרת?
בעיית סימני שאלה עם עברית…
יש לי את ה
<%@ language="VBscript" codePage="1255" %>
בכל עמוד אבל העברית עדיין מופיעה לי כסימני שאלה.
אני עובד עם ACCESS 2000.
ם אני מזין עברית לבסיס הנתונים ואז מעלה אותו לשרת זה עובד טוב אבל כשאני מזין מהטופס שלי זה לא עובד. למה זה?
תודה מהפפר
אתה מקבל סימני שאלה או ג'יבריש?
סימני שאלה
וכשאתה מוריד את ה-codepage?
עובד, למה זה?
בעייה עם הזנת תאריך ל ACCESS
יש לי 3 תיבות סלקט: יום, חודש ותאריך.
המשתמש בוחר את התאריך המבוקש ולוחץ "שלח".
אני מקבל הודעת שגיאה בהכנסה של התאריך, הנה הקוד:
BirthdayDay = request.form("BirthdayDay")
BirthdayMonth = request.form("BirthdayMonth")
BirthdayYear = request.form("BirthdayYear")
BirthdayDate = BirthdayDay & "/" & BirthdayMonth & "/" & BirthdayYear
SQL = "INSERT INTO membersTBL (BirthdayDate) VALUES('" & BirthdayDate & "')" —— line 60
זו ההודעת שגיאה שאני מקבל:
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
/jobnik/members_handler.asp, line 60
כמובן שאני גם משנה את הסדר של התאריך. אני רוצה שזה ייכנס כ DD/MM/YYY
מה הבעייה בקוד?
תודה
תאריכים באקסס עוטפים ב=#
ומכניסים בפורמט mm/dd/yyyy
מישהו שם לב להודעה הזו?
תמיד?
ואיך אני יכול לשלוף אותם כמו שאני רוצה? זה אפשרי?
לא
אתה שולף רגיל ומפרמט את התאריך כשאתה מציג אותו.
המון תודה לך, עזרת לי רבות
שאלה לגבי כפתורי רדיו
למשתמש יש אפשרות להזין את פרטיו וכמו כן גם לערוך אותם.
הבעייה היא בטופש העריכה.
יש לי טופס שיש בו 3 כפתורי רדיו (כן, לא, בטיפול).
כפתורי הרדיו הם עשויים מ HTML נטו.
אני רוצה שבדץ העריכה, הערך של כפתור הרדיו שהמשתמש בחר קודם לכן יופיע כמסומן.
אני חושב שאולי (רק אלי) אפשר לעשות את זה בג'אווה סקריפט, אבל אולי אני טועה. אני לא בטוח?
יש למישהו רעיון?
תודה מהפפר
אממ
זה אפשרי גם ב HTML בצורה הבאה:
הקוד הזה אמור להיות לאחר ההתחברות למסד הנתונים כמובן ובמקום הרצוי שברצונך שיהיה הכפתור רדיו
<input type=radio name=something value=1 <%if rs("fieldname") = 1 then response.write "checked"%>>
<input type=radio name=something value=2 <%if rs("fieldname") = 2 then response.write "checked"%>>
<input type=radio name=something value=3 <%if rs("fieldname") = 3 then response.write "checked"%>>
כמובן שיש להוסיף גרשיים בהתאם לסוג השדה.
בהצלחה,
עומר
mmm…
Is it better that way or should I try to get the JavaScript solution?
Thanks
hmm
I dont know the JavaScript solution, so I cant tell you.
לדעתי…
יותר טוב שתשלח ב-queryString את המס' ואז תעשה בדיקה זה חוסך משאבי שרת לעומת השיטה של עומר. ובקשר לג'אווה סקריפט יש ב-faq של תפוז שיטה לקרוא את ה-queryString דרך הג'אווה-סקריפט אתה מוזמן לחפש!
אממ…
לגבי שימוש IDENTITY@@, השיטה הזו חדשה גם לי, ואני לא מכיר מאמרים בנושא, אולי אם תכתוב מה בדיוק לא הבנת נוכל להסביר לך.
לגבי השליפה ממסד הנתונים במטרה לבדוק אם משתמש קיים, אז אין שום צורך לשלוף את כל השדות – מספיק לנסות לשלוף שדה חובה בודד – וזה, כמובן, חוסך לך בזמן השליפה ובתעבורת המידע בין השרת למסד הנתונים.
למה אתה מתכוון? אפשר דוגמא?
תודה לך
VB או JS לגבי בדיקת נתונים, מה עדיף
יש לי טופס שהמשתמש יכול לעדכן אחרי שהוא מזין את השם משתמש שלו והטופס מופיע מולו עם הפרטים בפנים.
ישנם כמה תיבות סלקט בטופס שהערכים שלהם צריכים להיות כבר מוזנים.
מצאתי 2 שיטות לכניס את הערכים. אחת בJS ואחת ב VB.
הנה השיטה ב JS:
<script language="JavaScript">
function DataReset()
{
document.details.BirthdayDay.value="<%= day(rs("BirthdayDate"))%>"
}
</script>
<body onLoad="DataReset();">
הנה השיטה ב VB:
<select Name="BirthdayDay">
<%
For BY = 1966 To 1986 'BD = BirthdayDay
BirthdayDateDay = day(BirthdayDate)
If BirthdayDateDay = BD Then
BirthdayDateday = "selected "
Else
BirthdayDateday = ""
End If
response.write "<option " & BirthdayDateday & "value=""" & BD & """>"& BY & "</option>" & vbCrLf
Next
%>
</select>
הייתי רוצה לדעת איך עדיף לעשות את זה?
מה יותא יעיל ומה יותר מהיר?
תודה לכם –
פפר
JS
תודה
שאלה בקשר לכפתורי רדיו…
יש לי טופס עדכון נתונים שיש בו 20 צ'ק בוקסים שונים.
כאשר המשתמש רוצה לעדכן את הפרטים שלו אני רוצה להציג מולו את הצ'קבוקסים שכבר מסומנים לו.
איך אני יכול לעשות את זה בעזרת JS?
תודה
Opss… I meant CheckBoxes
במדריך ASP יש דוגמא
תודה לך ילדה, רק שאלה אחת קטנה…
למה אי אפשר לעשות את זה ככה:
<input type="checkbox" name="animal" value="dog"<%if instr(animal,"dog") then%> checked>
יענו ללא ה END IF.
תודה
וגם ללא ה THEN
כי זה הסינטקס של VBS
אבל זה ידוע שאפשר
גם בלי ה THEN וה END IF נכון?