438
צפיות
צפיות
7
תשובות
תשובות
בעיה בטופס
שאלה שאני נתקל בה הרבה ואני לא יודע איך לפתור אותה:
כל פעם שאני מעביר נתונים לדף אחר עם Form, הם מתקבלים בדף השני רק עם המילה הראשונה.
זאת אומרת שאם רשמתי בטופס "פז לזר" אז בדף השני אני מקבל רק "פז"
כל מה שאחרי הרווח הוא כבר לא מכניס.
למה זה ואיך פותרים את זה?
7 תשובות
כי
אתה כותב
<input type = text value = a b>
ולא
<input type = text value = "a b">
לא קשור
אני בכלל לא משתמש ב-Value.
זה מה שאני עושה:
איצטדיון: <input type="text" Name="stadium"><br>
שופט: <input type="text" Name="ref"><br>
המשתמש מקיש דברים בתיבת הטקסט והם מועברים לעמוד השני.
הטופס בשיטת Post.
איך נראה הקוד בדף השני?
זה הקוד
זהו הדף הראשון בשם add.asp.
כאן יש את הטופס עצמו שמקבל ערכים מהמשתמש ואמור להעביר אותם ל-action.asp.
<form method=post action="action.asp">
response.write "<input type='hidden' name='home' value='מנצסטר_יונייטד'><br>"
response.write "<input type='hidden' name='away' value=" & rs("Against") & "><br>"
קוד זיהוי: <input type="text" Name="ID"><br>
איצטדיון: <input type="text" Name="stadium"><br>
שופט: <input type="text" Name="ref"><br>
<%response.write "מנצ'סטר יונייטד: <input type='text' Name='homegoal'><br>"%>
<%response.write rs("Against") & "<input type='text' Name='awaygoal'><br>"%>
זהו action.asp שמקבל את הנתונים מ-add.asp ואמור להכניס אותם למסד נתונים.
כאמור, הוא מכניס אותם אך רק את המילה הראשונה לפני הרווח של כל תיבת טקסט.
<%
Dim adoCon 'Holds the Database Connection Object
Dim rs 'Holds the recordset for the record to be updated
Dim strSQL 'Holds the SQL query to query the database
Dim lngRecordNo 'Holds the record number to be updated
lngRecordNo = CLng(Request.Form("ID"))
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("man.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM Fixtures WHERE ID=" & lngRecordNo
rs.CursorType = 2
rs.LockType = 3
rs.Open strSQL, adoCon
rs("Stadium") = Request.Form("stadium")
rs("Ref") = Request.Form("ref")
rs.Update
rs.Close
Set rs = Nothing
Set adoCon = Nothing
שימו לב שקיצרתי לכם את הקוד כמה שאפשר והכנסתי רק את החלקים הרלוונטיים.
תישר לצד שמאל
2 דברים
somebodyו צודק זה כמעט בילתי אפשר לקרוא את זה תישר לצד שמאל
והרבה יותר פשוט עם תעשה לדוגמה
<form method=post action="action.asp">
response.write "<input type='hidden' name='h_ome' value='מנצסטר_יונייטד'><br>"
response.write "<input type='hidden' name='a_way' value=" & rs("Against") & "><br>"
קוד זיהוי: <input type="text" Name="I_D"><br>
איצטדיון: <input type="text" Name="s_tadium"><br>
שופט: <input type="text" Name="r_ef"><br>
<%response.write "מנצ'סטר יונייטד: <input type='text' Name='homegoal'><br>"%>
<%response.write rs("Against") & "<input type='text' Name='awaygoal'><br>"%>
ובקוד השני תיכתוב
בגלל שאין לי את כל הקוד אז אני לא יוכל לתת לך את הקוד מתוקן
אבל איפה שאתה קורא לקחת מידע מהשדות אז במקום לכתוב לדוגמה id תכתוב i
נ.ב. אני לא בטוח אז תחכה לתגובה ממשהו שמבין בזה יותר כדי שיאשר את זה
חוץ מזה
מה זה response.write
זה חלק מהטקסט כי בדקתי את הקוד ב-front-page והוא הראה את ה-response.write כחלק מהטקסט