לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 16-07-2008, 00:29
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
[JS] ל-IE יש בעיה עם getElementsByName כשהערך הוא מערך?

יש לי את הקוד הבא ב-javascript:

קוד:
var catElements = document.getElementsByName("cats[]"); var cat; for (cat in catElements) { catElements[cat].onclick = function() { var childElements = document.getElementsByName("codes[\'"+this.value+"\']"); var child; for (child in childElements) childElements[child].checked = this.checked ? true : false; } }


כפי שניתן לראות, אין שום דבר מיוחד.
מה שאני רוצה לעשות, זה לתפוס את האלמנטים שיש להם שמות מסוג מערך.
כלומר שב-HTML, אחד האלמנטים נראה ככה:

קוד:
<input type="checkbox" name="cats[]" value="Some_value" />
או ככה:

קוד:
<input type="checkbox" name="cats['word']" value="value..." />


ואותם אני רוצה ל"תפוס".

ב-FF ו-Opera הסקריפט עובד מעולה, אבל ב-IE6 או IE7 אין תגובה, הסקריפט לא עובד בכלל וזה אפילו לא מחזיר שגיאה (למטה, ב-Status bar לא מצוינת שגיאה)

מישהו מכיר את הבעיה ויודע איך לפתור?

יש לי הרגשה שזה עניין לא פתור ב-IE....

עריכה:

ד"א, אם אני כותב alert() אחרי החלק הבא:
קוד:
for (cat in catElements) {


(כלומר, אם אני כותב:
קוד:
for (cat in catElements) {alert(); // rest of code


)
אז ה-alert עובד 4 פעמים (הפעם הראשונה זה ה-length, כנראה של המערך)

תודה מראש

נערך לאחרונה ע"י DCD בתאריך 16-07-2008 בשעה 00:38.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 17-07-2008, 23:36
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
בתגובה להודעה מספר 6 שנכתבה על ידי uninstall שמתחילה ב "מה הכוונה ערך מסויים ביצע..."

ציטוט:
אתה יכול לרשום פה איך אתה קורא את השדות בצד השרת?

אני עושה var_dump או print_r ורואה מה יוצא.

ציטוט:
מה הכוונה ערך מסויים ביצע Overwrite?

אם משתמשים באותו השם ליותר מאלמנט אחד, אז יתבצע דריסה של הערכים. כלומר, שרק ערך אחד יתקבל בצד השרת באמצעות מתודת ה-POST (או ה-GET או מה שזה יהיה)

לדוגמא, אם יש לי את הבאים:

קוד:
<input name="foo" value="bar" /> <input name="foo" value="Some" />


אז כאשר אבצע submit לטופס, בצד השרת כאשר אכתוב:
קוד PHP:
 $_POST['foo'

אקבל רק bar או Some

ציטוט:
דבר נוסף, אני ממש לא מבין למה אתה צריך לתת שם שהוא מערך, מה זה נותן לך? למה לא לקרוא את כולם בתור מחרוזת?

אין לי דרך אחרת לעשות זאת...
תחשוב שיש לך מחלקה, ובתוך המחלקה הזאת יש כמה עמודים ששייכים אך ורק לאותה המחלקה.
כיוון שיש מספר רב של מחלקות, ולכל מחלקה יש עמודים שרלוונטיים רק אליה, צריך לכל עמוד לתת מזהה של מחלקה.

את הנ"ל אני מבטא במאפיין ה-name בערך מסוג מערך, כאשר במפתח יש את שם המחלקה, ובערך יש את שם העמוד.

יש פיתרון אחר לזה, אבל זה סתם מיותר ודי מסובך, כאשר אני מחפש פיתרונות פשוטים...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 18-07-2008, 09:34
  משתמש זכר uninstall uninstall אינו מחובר  
 
חבר מתאריך: 11.11.01
הודעות: 1,751
בתגובה להודעה מספר 7 שנכתבה על ידי DCD שמתחילה ב "[QUOTE]אתה יכול לרשום פה איך..."

מוזר, הסתכלתי עכשיו באתר ישן שכתבתי (אומנם ב ASP) וזה דווקא לא אמור לדרוס לך את המידע.

יש לי באתר את הטופס הזה:
קוד:
<input type="checkbox" name="favorite" value="rama"> Ramat Hagolan <input type="checkbox" name="favorite" value="galil"> Galil <input type="checkbox" name="favorite" value="negev"> Negev <input type="checkbox" name="favorite" value="shfela"> Shfela <input type="checkbox" name="favorite" value="carmel"> Carmel

ובצד שרת אני קורא אותו בצורה הזאת:
קוד:
Request.Form("favorite")


ואני מקבל מחרוזת עם כל מה שהמשתמש סימן, אני יכול לעשות לזה Split כדי להפוך את זה למערך שקל לעבור עליו.
יכול להיות של PHP יש שיטה מיוחדת כדי לעבור על מידע של CheckBox...

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #15  
ישן 20-07-2008, 11:21
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
בתגובה להודעה מספר 14 שנכתבה על ידי uninstall שמתחילה ב "זה קצת מצחיק שאתה אומר ששנינו..."

ציטוט:
זה קצת מצחיק שאתה אומר ששנינו צודקים, כי אני ו GreenBerret אומרים 2 דברים הפוכים לגמרי.


נכון, אבל כשחושבים על זה, checkbox יכול למלא את הציפיות של שניכם מבחינת אופן פעולתו, ולכן שניכם צודקים.

ציטוט:
תנסה לראות אם המשתנה שאתה מקבל ב PHP הוא לא מערך במקרה, תנסה לעבור עליו בלולאה ותראה מה אתה יכול לחלוב ממנו. לדעתי זה אמור לעבוד.

בדקתי גם לפני אבל עדיין זה לא מערך ללא "[]"...

ציטוט:
אם זה לא עובד, תנסה לתת לשדות את אותו השם עם [], כלומר שהשמות של השדות ייראו ככה: cats[] (בלי המיקום במערך).
ואז ב PHP תנסה לקרוא את זה, הוא אמור למשוך לך ישר מערך עם כל התוכן.


יש לי סוג input שבו ה-name הוא ללא ציון שם המפתח במערך, וסוג input נוסף שבו ה-name כולל ציון שם מפתח במערך.

המבנה הוא כזה:

קוד:
<input type="checkbox" name="cats[]" value="foo" /> <input type="checkbox" name="codes[foo]" value="bar" /> <input type="checkbox" name="codes[foo]" value="bar2" /> <input type="checkbox" name="codes[foo]" value="bar3" /> <input type="checkbox" name="codes[foo]" value="bar4" /> <input type="checkbox" name="cats[]" value="myCat" /> <input type="checkbox" name="codes[myCat]" value="myValue1" /> <input type="checkbox" name="codes[myCat]" value="myValue2" />


וכן הלאה כאשר לכל cat יש מספר שונה של codes השייך לו.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 13:33

הדף נוצר ב 0.06 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר