446
צפיות
צפיות
24
תשובות
תשובות
קליטת נתונים למסד הנתונים
ברצוני לבנות דף ASP, דרכו אקלוט נתונים מהמשתמש.
לדוגמא:
טופס עם שדות (שם פרטי משפחה טלפון וכו').
בלחיצה על כפתור "הוסף", יוכנסו הנתונים לתוך מסד הנתונים.
שאלתי היא האם ניתן לעשות את הפעולה הזו בדף אחד ולא בשני דפי ASP?
אם כן, כיצד?
אודה לתשובתכם.
24 תשובות
כן
תיצור פונקציה באותו הדף שתעשה את אותה הפעולה
אני די מתחיל ..אז
האם את הפונקצייה (קוד ה- ASP) לכתוב לפני קוד ה- HTML?
או אחרי?
זה לא משנה העיקר שיהיה בתחומי ה %>
תודה…אודיע לך אם עובד.
עוד אפשרויות…
1. אתה יכול ליצור משפט IF שבודק אם נשלח הטופס וכך בעצם לחלק את העמוד שלך לשניים בקלות.
2. לעבוד עם Select Case וליצור Case לטופס ועוד Case להוספת הנתונים למסד.
לפי דעתי, האופציה השנייה יעילה והרבה יותר טובה לשימוש.
שגיאה 800A0CB3
קיבלתי את השגיאה הנ"ל:
ADODB.Recordset (0x800A0CB3)
Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
/phonebook1/add.asp, line 89
בדף add כתבתי כך:
Dim RS, SQL
set RS = server.CreateObject("ADODB.recordset")
SQL = "SELECT * FROM phonenumber"
RS.open SQL, connstring
ובשורה 89
RS.addnew
מה אני צריך לרשום בקוד על מנת שלא תופיע השגיאה הזו?
תודה לעזרתכם!
לא הגדרת כהוספה
צריך להגדיר כהוספה או עדכון על מנת שתוכל לבצע פעולה זו.
תחליף את הקוד:
RS.open SQL, connstring
בזה:
RS.open SQL, connstring, 2, 3
השגיאה אמורה להיעלם.
תותח! תודה לכולכם!
ניווט ברשומות – בעיות!
טופס עם תיבות טקסט שבהם נתונים מתוך מסד הנתונים.
בתחתית הטופס לינק בשם NEXT שמקושר לפונקציה שבניתי RSMOVENEXT.
הודעת השגיאה שמתקבלת היא
Directory Listing Denied
This Virtual Directory does not allow contents to be listed
הפונקציה:
<%
Dim RS, SQL
set RS = server.CreateObject("ADODB.recordset")
SQL = "SELECT * FROM phonenumber"
RS.open SQL, connstring, 2, 3
Sub RSMoveNext
if not RS.eof then RS.movenext
End Sub
%>
הטופס:
<form action="" method="post" name="update_form" id="update_form">
<table width="500" border="1" cellspacing="2" cellpadding="2">
<tr>
<td>First Name </td>
<td><input name="first_name" type="text" id="first_name" value="<%=(RS.Fields.Item("first_name").Value)%>"></td>
</tr>
<tr>
<td>Last Name </td>
<td><input type="text" name="textfield2" value="<%=(RS.Fields.Item("last_name").Value)%>"></td>
.
.
.
.
<td colspan="2">Previous <a href="<%RSMoveNext%>">Next</a> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Submit" value="UPDATE RECORD"></td>
</tr>
</table>
</form>
אודה לתשובתכם מקרב לב!!!!
הפונקציה שגוייה
יותר נכון, הסאב..
אתה צריך לשים את כל הקוד בתוך הסאב ולא רק שורה בודדת וגם לא הדפסת בסאב תוצאה.
<%
Sub RSMoveNext
Dim RS, SQL
set RS = server.CreateObject("ADODB.recordset")
SQL = "SELECT * FROM phonenumber"
RS.open SQL, connstring, 2, 3
if not RS.eof then RS.movenext
End Sub
%>
לא הבנתי למה אתה עושה זאת. אתה רוצה לעשות חלוקה לעמודים?
התכוונתי ל….
בכל פעם שאלחץ NEXT
ישתנו הנתונים בתיבות הטקסט.
האם כך אני צריך לבצע זאת?
באופן דינמי…
ללא מעבר לעמוד אחר או רענון העמוד ?
EXECTLLEY! זה בדיוק מה שאני צריך!!!
איך לעשות את זה?
(הסיפור הוא שבניתי אתר שלם בלחיצות כפתור בעזרת DREAMWEAVER
אך הכל הלך לעזאזל, והגעתי למסקנה שבאמת הכי טוב , לכתוב ידנית את הקוד.)
הגעתי לשלב הזה.
איך אני מבצע דבר כזה?
תודה מראש!!!!
ניווט ברשומות באופן דינמי
ניסיתי ליצור טופס עם תיבות טקסט עם לינק בשם NEXT
בעת לחיצה עליו ינועו הנתונים (הרשומות) קדימה מבלי לעבור דף או לרעננו.
כלומר – באופן דינמי.
יצרתי פונקציה להוזזת הרשומה קדימה
<%
Dim RS, SQL
set RS = server.CreateObject("ADODB.recordset")
SQL = "SELECT * FROM phonenumber"
RS.open SQL, connstring, 2, 3
Sub RSMoveNext
if not RS.eof then RS.movenext
End Sub
%>
הלינק –
<a href="<%RSMoveNext%>">Next</a>
השגיאה:
Directory Listing Denied
This Virtual Directory does not allow contents to be listed
אתה לא יכול.
יש הבדל בין צד שרת ללקוח…
קרא
תרשה לי לחלוק.
יצרתי דף כזה בצורה אוטומטית בתוכנת DREAMWEAVER.
תשמע, אני יכול להראות לך את הקוד שהתוכנה יצרה. הכל הכל בדף אחד.
אבל בנינו, הקוד הזה לא מובן, ולך תעשה בו שינויים לפי צרכיך.
לכן אני מתעקש על השאלה הזו.
אודה באם לך או למישהו כאן בפורום יש תשובה לבעייתי.
תודה לכם!
האם אפשר לרשום בצורה כזו?
כלומר האם כתיבה זו נכונה?
כפתור
<td colspan="2"><input name="previous" type="button" id="previous" value="Previous" onClick="<% RSMovePrevious %>"></td>
כאשר RSMovePrevious היא פונקציה. האם זה מותר או שמא רק משתנים ניתן לשים?
יש לך 2 אפשרויות בשימוש עם פונקציה
1. לבצע הדפסה של הערך בתוך הפונקציה:
function….
code…
Response.Write …
end function
2. להדפיס את המשתנה המתקבל מהפונקציה, לפי הקוד שלך:
<td colspan="2"><input name="previous" type="button" id="previous" value="Previous" onClick="<%=RSMovePrevious%>"></td>
אי אפשר להפעיל פעולות של צד שרת דרך
לקוח, אלא עם שליחת בקשה נפרדת.
תשמע אני לא מי יודע מה מבין אבל הנה
הקובץ שמבצע את זה.
מחכה לתגובה
תודה!!!
נראה לך שמישהו הולך לעבור על כזה ק-
וד?
אי אפשר לקרוא לפונקציות צד שרת
מצד הלקוח.
קרא תקנון פורום וכיצד מציגים שאלה|!
בהנחה שיש לך שדה מספור אוטומטי
בטבלה אתה יכול לקרוא לעמוד מסוים דרך XMLHTTP ובכך לקבל נתונים בלי לרפרש את הדף.
ובעצם בעזרת המספור האוטמטי תוכל לעשות את השאילתא הבאה:
"SELECT TOP 1 * FROM tbl WHERE fldID>"&lastRecord&" ORDER BY fldId"