572
צפיות
צפיות
26
תשובות
תשובות
בעיה ב-If
שלום לכולם!
יש לי בעיה בתנאי הבא:
<%
for i=1 to 4
if not rs("a"&i) = "" then
%>
<input type="radio" name="hit" value="h<%=i%>"><%=rs("a"&i)%></input>
<br>
<%
end if
next
%>
* rs זה RecordSet והוא מוגדר
הבעיה:
התנאי מתקיים פעמיים, כלומר יש פעמים rs(a1) ו rs(a2) הם לא ריקים..
אך משום מה הוא לא כותב לי את הקטע האדום, שזה מה שיש ב- rs(a1) ו rs(a2)
הוא רושם רק את הכפתור הרדיו פעמיים…
מישהו יכול לעזור לי?
תודה לכל העוזרים, אלברט
26 תשובות
בבקשה
מישהו יודע..?
תודה לכ העוזרים, אלברט
אני בספק
אבל נסה ככה:
<%=rs("a"&i).value%>
עדיין לא עובד…
מה עושים?
תודה, אלברט
בלי ה-if הוא כן מציג משהוא שם?
כן!
וזה מה שמשגע אותי
בלי if הוא מציג הכל יפה…
רק שאם נגיד יש נתונים רק בa1 וa2? אז הוא סתם יציג לי כתי כפתורי רדיו ריקים…
ובגלל זה עטפתי את זה בif…
יש לך רעיון?
תודה, אלברט
זו שיטה קווקזית
אל תעבוד ככה
*כתי = שתי
יש לך רעיון אחר?
אשמח אם תציע לי משהו אחר שיעשה את העבודה הזאת…
תודה, אלברט
בטח
לעבור על הרקורד בשיטה המקובלת…
while(!oRs.EOF)
אבל:
זה לא על כל הרשומות, זה על רשומה אחת שיש בה כמה שדות…
כלומר באותו הID יש a1,a2,a3,a4 ולא בטוח שיש בכל בהשדות האלו נתונים…
מה אני עושה?
תודה, אלברט
נסה את זה:
<%
for i=1 to 4
if rs("a"&i) <> "" then
%>
<input type="radio" name="hit" value="h<%=i%>"><%=rs("a"&i)%></input>
<br>
<%
end if
next
%>
ניסיתי את זה לפני
שכתבתי את השאלה בפורום…
וגם ניסיתי ככה:
Len(rs("a"&i)) <> 0
אבל עדיין זה לא עובד… מה אני יכול לעשות?
תודה, אלברט
לא מכניס לרקורד בכלל
השאילתא עצמה תברור מתוך הטבלה את מה שאתה צריך בדיוק בעזרת WHERE.
יש הסבר מפורט על השימוש בו במדריך SQL כאן באתר.
לא בדיוק הבנתי…
מצטער אבל לא ממש הבנתי אותך…
אתה יכול להסביר לי אחרת?
תודה, אלברט
ממתי שמים…
ערך לכתיבה בין תגית של input תעשה כך :::
<% =rs("a" & i) %>
<input type="radio" name="hit" value="h<%=i%>"></input>
ניסיתי…
ניסיתי את זה גם…
אבל עדיין לא עובד… אני לא מבין למה הוא לא כותב את rs("a1") ןrs("a2")?
מה הבעיה שלו?
תודה, אלברט
יכול להיות…
שקוד הזה לא פועל כי זה לא מקבל את הכתיבה הזאת :::
<% =rs("a" & i) %>
נסה כך :::
for i=1 to 4
select case i
case 1
response.write rs.fields("a1")
case 2
response.write rs.fields("a2")
case 3
response.write rs.fields("a3")
case 4
response.write rs.fields("a4")
end select
%>
<input type="radio" name="hit" value="h<%=i%>"></input>
<% next %>
<br>
ובכל אחד מה-caseים תעשה if קצת מסורבל אבל לדעתי זה יעבוד
איזה if אני אעשה?
שבודק
אם יש בתוכו תוכן או אין…
ככה:?
אתה מתכוון לזה:?
select case i
case 1
if rs.fields("a1") <> "" then
response.write rs.fields("a1")
end if
case 2
if rs.fields("a2") <> "" then
response.write rs.fields("a2")
end if
case 3
if rs.fields("a3") <> "" then
response.write rs.fields("a3")
end if
case 4
if rs.fields("a4") <> "" then
response.write rs.fields("a4")
end if
end select
תודה לך על העזרה… אבל עדיין זה לא עובד (לפי הקוד שכתוב למעלה) אני מתחיל להתשגע כבר….
כן כך
זה אולי מסורבל אבל יעיל
אבל זה עדיין לא עובד?
מה אני עושה?
בבקשה…
תודה, אלברט
טוף, הגיע הזמן להתערב בשרשור הזה…
הוא כבר מתחיל להיות שרשורפלצת.
מכיון שאני לא מתכוון להתחיל לקרוא את כל השרשור הענקי הזה מההתחלה, אני מבקש שתציג את השאלה מחדש (אבל לא בשרשור חדש, חס וכרפס), בצורה ברורה:
הקוד הרלוונטי, הבעיה (ולא, "זה לא עובד" לא מתקבל אצלי בתור בעיה), והודעת השגיאה (אם יש) כלשונה.
אחר כך אני בטוח שנצליח לפתור אותה ביחד.
נסה לעשות דבר כזה
במקום הבדיקה של ה-if שלך תעשה if אחר כזה :::
if not isEmpt(rs.fields("a1")) then
response.write rs.fields("a1")
end if
מקווה שזה יעבוד
הופה! סוף סוך אני מקבל הודעת שגיאה:
זה לא שאני שמח, אבל עכשיו אפשר להבין מה הבעיה, הנה השגיאה:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'isEmpt'
שלא תטעה כי אני טעיתי
שכחתי את האות Y ב-isEmpty