נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
בניית אתרים
RSS UnderWarrior Forums : RSS בניית אתרים
נושא

נושא: שאלה בjavascript

(נושא נעול נושא נעול)
שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
רן
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 26 October 2007 בשעה 16:39 | IP רשוּם
 

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

קוד:

<html>
<head>
</head>
<body>
<form name="txtform" onSubmit=alert(txt.length)>
<input type="text" name="txt">
<P>
<input type="Submit" value="submit now">
</form>
</body>
</html>

 

חזרה לתחילת העמוד הצג את כרטיס החבר של רן חפש הודעות אחרות של רן בקר בדף הבית של רן
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 26 October 2007 בשעה 17:00 | IP רשוּם
 

קודם כל כתוב את התכונות באותיות קטנות (onsubmit) ושים את הערכים שלהן
בין גרשיים (onsubmit="alert(txt.length"

חוץ מזה תגיות סוגרים, אם החלטת שהדרך שלך לרווח היא לשים תגית P, למרות
שזאת לא דרך משהו, אז תשים <p></p>

ועכשיו לעניין, כדי לגשת לשדה של טופס משתמשים בקוד הבא:

קוד:
document.txtform.txt.value


כאשר rxrform שם הטופס ו-txt שם השדה.

אז אתה אמור לכתוב בערך

קוד:
onsubmit="alert(document.txtform.txt.length);"


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
רן
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 26 October 2007 בשעה 18:08 | IP רשוּם
 

וואי זאת היה תגובה יחסית מהירה :)
כמה דברים - אמרת שהדרך שלי לשים רווח היא לא משהו, אני אשמח לקבל דרכים אחרות, אני רק השבוע התחלתי ללמוד Javascript, אני כבר יודע HTML ממזמן, אז אין לי כמעט ניסיון בכתיבת JS וHTML ואני פתוח להצעות ושיפורים. במה כדאי להשתמש במקום <P>
דבר שני - למה צריך לסגור את התגית <P>? רואים את אותה תוצאה גם אם לא כותבים </P>.
דבר שלישי - מצאתי את הטעות שלי ואת הסיבה שהסקריפט לא עבד - כל מה שהייתי צריך לעשות זה להוסיף .value לפני .length:
קוד:

onsubmit="alert(txt.value.length)"

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

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 26 October 2007 בשעה 18:44 | IP רשוּם
 

תראה כשאתה כותב תא הקוד ב-onsubmit עצמו הוא מורץ אוטומטית על this כאשר
this זה הטופס שזה מה שמתקבל מ-document.txtform

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

בקשר ל-P, אין מה לעשות, ככה כותבים HTML בצורה שיבינו אותו (ראה XHTML)

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
elseif
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 26 October 2007 בשעה 19:08 | IP רשוּם
 

אני מציע לכתוב ב XHTML 1.0 STRICT הדבר הזה חיוני כדי שהאתר שלך יהיה נגיש לכול הדפדפנים ולפי הסטנדרים אתה חייב שיהיה לך תגיות סגורות תמיד אפילו אם בפועל התוצאה נראת אותו הדבר , עוד משהו אם אתה רוצה לדעת האם האתר שלך הוא כמו שהוא צריך להיות לפי הסטנדרטים תבדוק אותו האתר הבא :
http://validator.w3.org/
פה אתה יכול להעלות את הדף שלך והוא יגיד לך אם הוא טוב ואם לא הוא יגיד לך את הטעיות שלך אבל אל תתעסק בזה עדיין תלמד JS . . .אחרי זה אם תבנה אתר אינטרנט תדאג שכול העמודים בו עוברים את הבדיקה הזאת

חזרה לתחילת העמוד הצג את כרטיס החבר של elseif חפש הודעות אחרות של elseif בקר בדף הבית של elseif
 
רן
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 26 October 2007 בשעה 20:49 | IP רשוּם
 

אוקיי תודה רבה על העזרה :) אני עכשיו מנסה לכתוב קוד בשביל תרגול:
יש 2 שדות: אחד שדה שמכניסים בו טקסט, והאחר שדה שמכניסים בו מילה אחת (או צירוף מילים), ואז כשלוחצים על כפתור קופצת הודעה שכתוב בה מספר הפעמים שהמילה מופיעה בטקסט. תאחלו לי בהצלחה, בתקווה שאני אצליח לעשות את זה לבד בלי עזרה :D
חזרה לתחילת העמוד הצג את כרטיס החבר של רן חפש הודעות אחרות של רן בקר בדף הבית של רן
 
רן
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 27 October 2007 בשעה 16:44 | IP רשוּם
 

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

קוד:

<html>
<head>
<script type="text/javascript">
function counter(txt,srch)
{
var shownumber=0
var nexttime=0
var i=0
while (i<txt.length)
{
i=txt.indexOf(srch,nexttime)+1
nexttime=i
if (i==0) {break}
shownumber++
}
alert("The string " + "\"" + srch + "\"" + " appears " + shownumber + " times in the text")
}
</script>
</head>
<body>
<form name="txtform" onSubmit="counter(mytxt.value,search.value)">
<textarea rows=10 cols=50 name="mytxt"></textarea>
<P>
<input type="text" name="search" value="write the searched word here" size=40>
<P>
<input type="Submit" value="search now">
</form>
</body>
</html>

ד"א, בנוסף לביקורת על הקוד, יש לי שאלה:

אני רוצה לעשות אפשרות שיהיה checkbox שאפשר לסמן בה V, כדי לעשות חיפוש למקרה של case insensitive , עכשיו אני לא בטוח איך לעשות את זה. אני ראיתי שבמקרה של repalce() וsearch() ניתן לעשות מקרה של case insensitive, אבל לא ראיתי שאפשר לעשות את זה עם הmethod של indexOf(), אני צודק? אי אפשר?

כי אם אי אפשר להשתמש בcase insensitive יש לי רעיון איך לעשות את זה אחרת (להעביר גם את מילת החיפוש וגם את הטקסט לאותיות קטנות), אבל סתם מסקרן אותי אם יש אפשרות. תודה מראש (ד"א אם מישהו לא שם לב כתבתי את מה שהקוד שלי אמור לעשות בתגובה הקודמת, כדי שיעזור לכם להבין) ^^

חזרה לתחילת העמוד הצג את כרטיס החבר של רן חפש הודעות אחרות של רן בקר בדף הבית של רן
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 27 October 2007 בשעה 17:27 | IP רשוּם
 

א. למה + "\"" ולא סתם לשים \" בתוך המחרוזת הראשית ?

ב. יהיה יותר פשוט להשתמש ב-split ולראות כמה איברים יש ולפי זה
לקבוע את מספר המופעים של המילה (ראה קוד ב-ג.)

ג. חיפוש case insensetive או לא אפשר לעשות עם regular expressions.

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

כדי להפוך את החיפוש ל-case sensetive תוריד את ה-i (מה -gim)

g - global
m - multiline
i - case insensetive
  
קוד:
var sentence = "this is my text and is contactins textual thins";
var word = "text";
var reg = new RegExp(word, "gim");
var matchCount = sentence.split(reg).length-1;
alert("the sentence \"" + sentence + "\" contains the phrase \""+word+"\" " + matchCount + " times.");


יפה ששמת את ה-type="text/javascript"

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
:)
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 27 October 2007 בשעה 18:11 | IP רשוּם
 

מציע לך להוריד VISUAL WEB DEVELOPER 2008 (חינמי) ואז להשתמש בתיקון של XHTML 1.0 traditional (אין STRICT :(    ) לדפים רגילים
וב XHTML 1.0 FRAMESET לדפים שיש בהם FRAMES
ככה תדע אם חסרים לך מרכיבים שצריכים להיות בדף כדי שהוא יהיה תקין
לדוגמה :

חזרה לתחילת העמוד הצג את כרטיס החבר של :) חפש הודעות אחרות של :) בקר בדף הבית של :)
 
רן
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 28 October 2007 בשעה 00:24 | IP רשוּם
 

אוקיי אני כבר עייף מלקרוא על JS אני הולך לישון ^^

שושן הבנתי את ההערה על המרכאות ותיקנתי. בקשר למה שאמרת על RegExp, עדיין לא הגעתי לנושא הזה במקום שאני לומד בו, אני לומד דרך האתר http://www.w3schools.com.
מוזר, הסתכלתי בתוכן עניינים ולא ראיתי שיש שם פרק על RegExp, אני אבדוק מחר שוב, עדיף להתקדם שם פשוט לפי הסדר ובטוח אני אגיע לזה מתישהו, ואז אני אנסה להבין את מה שאמרת. תודה על העזרה :)

אדון סמיילי (חחח xD) אני בדיוק סיימתי להוריד את התוכנה, אני אבדוק אותה מחר.

דבר אחרון, אני עכשיו מסיים את הפרק באתר על אובייקטים בJS, התעכבתי על זה עכשיו די הרבה כי יש שם חלק על HTML DOM, אז קראתי שם הרבה דברים.
עכשיו, רציתי רק לשאול אתכם על 2 דברים שאני לא מבין:
הראשון - למה משמש הדבר document.writeIn? מה ההבדל בין זה לwrite?
השני - למה צריך  document.open/close ?
תודה מראש על העזרה
חזרה לתחילת העמוד הצג את כרטיס החבר של רן חפש הודעות אחרות של רן בקר בדף הבית של רן
 
elseif
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 28 October 2007 בשעה 09:36 | IP רשוּם
 

http://www.w3schools.com - זה אתר טוב למתחילים אבל יש שם דברים שאם אתה לא מבין או שלא ממש נראים לך אל תשתמש בהם
document.write - פשוט כותב בתוך המסמך מה שאתה נותן לו נגיד :
קוד:

document.write("Hello");

תעשה את זה ותראה כבר איך זה יכתוב את זה , ההדבל בינו ובין document.writeln(); זה שWRITE לא יורד שורה אחריו ו WRITELN כותב את מה שאתה נותן לו ויורד שורה אחרי זה
document.open/close - אתה לא חייב להשתמש בזה כמו שאמרתי אל תשתמש בכול דבר שראית רק ב W3SCHOOLS
חזרה לתחילת העמוד הצג את כרטיס החבר של elseif חפש הודעות אחרות של elseif בקר בדף הבית של elseif
 
רן
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 28 October 2007 בשעה 16:22 | IP רשוּם
 

בקשר לwriteln , אני חשבתי שהl זה בעצם I (איי במקום אל), ובגלל זה הפקודה לא עבדה לי ועשתה לי בעיות. ד"א, זה לא עושה שורה חדשה, זה עושה רק רווח בין המילים.

עכשיו, אתה בטוח שאין שימוש מיוחד לdocument.open/close ? לא הגיוני שיצרו את הדבר הזה סתם, בטוח יש דברים שאי אפשר לעשות אם הדבר הזה לא היה קיים. מישהו יכול לתת לי דוגמא שיש בה שימוש הכרחי בפקודה הזאת?
חזרה לתחילת העמוד הצג את כרטיס החבר של רן חפש הודעות אחרות של רן בקר בדף הבית של רן
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 28 October 2007 בשעה 17:00 | IP רשוּם
 

יש שימוש, זה סוגר את ה-stream של הכתיבה של javascript (או של המסמך?)

אבל אין שימוש - זה קורה לבד גם ככה ולא ראיתי אף פעם שימוש במתודה הזאת.

בקשר לירידת שורה, כשאתה כותב אתה כותב HTML, לא טקסט.

לכם בדיוק כמו שב-HTML ירידת שורה לא יורדת שורה אלא מוסיפה רווח, ככה זה
גם בכתיבה הזאת.

כדי לרדת שורה תכתוב <br />

אם למשל תכתוב בתוך textarea או pre אז יהיה אפשר לראות שבירת שורה בגלל
הירידת שורה.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
רן
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 28 October 2007 בשעה 19:42 | IP רשוּם
 

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

וד"א למה כותבים <br /> ולא פשוט <br> (שניהם עובדים, אבל אני משער שיש סיבה להשתמש במה שאתה אמרת)?

חזרה לתחילת העמוד הצג את כרטיס החבר של רן חפש הודעות אחרות של רן בקר בדף הבית של רן
 
elseif
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 28 October 2007 בשעה 20:01 | IP רשוּם
 

האם אתה משתמש ב WEB DEVELOPER עם XHTML 1.0 TRANSITIONAL . .
תראה לבד כבר שהוא יגיד לך ש <br> זה שגיאה
הסיבה היא שלפי XHTML לכול תג צריך להיות תג סוגר לתגים הרגילים נגיד :
קוד:

<p></p>

אבל יש גם תגים שאין להם תג סוגר אז הם התג סוגר של עצמם
קוד:

<br/>

אם אתה משתמש ב INTERNET EXPLORER כדי לבדוק את האתרים שלך אז תדע שהרבה דברים שהם לא נכונים לפי הסטנדרטים יעבדו אבל זה לא צריך להיות ככה כי יש הרבה אנשים עם דפדפנים אחרים שלא יוכלו לראות כמו שצריך את האתר ובגלל זה העצה הכי טוב שאני יכול לתת לך זה :
בזמן הכתיבה תשתמש ב  WEB DEVELOPER כמו שאמרתי מקודם על XHTML 1.0
אחרי שסיימת לכתוב דף מסויים תבדוק אותו ב http://validator.w3.org/ ותראה עם יש שגיאות ככה תדע שכתבת נכון ( כי יש קצת דברים ש WEB DEBELOPER לא מודיע עליהם )
חזרה לתחילת העמוד הצג את כרטיס החבר של elseif חפש הודעות אחרות של elseif בקר בדף הבית של elseif
 
_Ran_
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 29 October 2007
משתמש: מנותק/ת
הודעות: 80
נשלח בתאריך: 29 October 2007 בשעה 13:04 | IP רשוּם
 

ממש ממש תודה, אתם לא מבינים כמה אתם עוזרים לי :)

יש לכם פה אחלה פורום, אני עכשיו נרשמתי בתור משתמש...

אז בינתיים, אני אמשיך ללמוד Javascript , ואם אני אתקל בשאלות אני אכתוב לכם. אני אחרי זה עובר ללמוד CSS , ואז כבר אני אתייעץ איתכם מה ללמוד עוד :) בעיקרון המטרה שלי היא שפת צד שרת (אני לא בטוח שככה זה נקרא, אני מתכוון לדברים כמו ASP.NET וPHP). עדיין לא החלטתי מה ואני אתייעץ איתכם בקשר לזה אח"כ, כי אני קודם רוצה לסיים JS. אבל רציתי לדעת, כדאי לי לפני שאני ממשיך לזה ללמוד XHTML? או שמספיק להיעזר בWEB DEVELOPER כדי שיתקן את זה לסטנדרט של XHTML?

תודה מראש :)

חזרה לתחילת העמוד הצג את כרטיס החבר של _Ran_ חפש הודעות אחרות של _Ran_
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 29 October 2007 בשעה 13:21 | IP רשוּם
 

אין סיבה שלא תלמד ותבין דברים בעצמך...

באמת מאוד פשוט להבין את החוקים של XML

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
_Ran_
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 29 October 2007
משתמש: מנותק/ת
הודעות: 80
נשלח בתאריך: 01 November 2007 בשעה 15:11 | IP רשוּם
 

שלום שוב, לא היה לי זמן להמשיך ללמוד js ביומיים האחרונים, אבל היום נכנסתי לעוד מרתון. יש לי 2 שאלות:

1) למדתי על RegExp , ועכשיו בדיוק כתבתי כאן במשך 5 דקות על משהו שלא הבנתי בנושא, אבל 2 דקות אחרי שכתבתי את זה מצאתי את התשובה בגוגל. אז לא משנה, תתעלמו, אני כבר יודע לגמרי את כל הנושא (אני מקווה).

2) אני התחלתי ללמוד על cookies , ודי הסתבכתי. אני מבין את הרעיון שעומד מאחורי העוגיות ואת השימושים האפשריים בהם, אבל הסינטקס ליצירת עוגייה ממש לא ברור לי. נתקלתי בW3Schools בסינטקס מבלבל, ואז כשחיפשתי בגוגל על הנושא שמתי לב שיש 2 דרכים (אלא אם כן לא הבנתי נכון) ליצור עוגייה. אחת היא:
קוד:

document.cookie =
   'ppkcookie1=testcookie; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/'

והשנייה היא:
קוד:

var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");


הדרך השנייה שכתבתי לקוחה מאתר כלשהו מגוגל, אבל זאת אותה דרך שמופיעה בW3schools
http://www.w3schools.com/js/js_cookies.asp
התקשיתי מאוד להבין אותה, ועכשיו אני עוד יותר מבולבל. אני לא יודע אם יש הבדל בין 2 הדרכים, במה כדאי להשתמש, ואיך משתמשים בדרך השנייה שכתבתי.
אם מישהו יוכל לכתוב הסבר ברור זה יהיה ממש נחמד מצידו :)



הרבה תודה מראש לעוזרים - רן :D
חזרה לתחילת העמוד הצג את כרטיס החבר של _Ran_ חפש הודעות אחרות של _Ran_
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 01 November 2007 בשעה 15:59 | IP רשוּם
 

אתה מתקדם יפה (:
 
אין ממש הבדל בין הדרכים

השנייה פשוט שמה ערך לכלפרמטר רק אם הוא הועבר לפונקציה וטורחת להעביר את
התאריך תפוגה לצורה הנכונה בעצמה ולעשות escape לערך.

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

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 01 November 2007 בשעה 18:21 | IP רשוּם
 

תודה על התשובה שושן :) 
בקשר לדרך השנייה יש שורה שאני ממש לא מבין, אני מעתיק עכשיו את הפונקציה מW3School. הנה לינק -
http://www.w3schools.com/js/js_cookies.asp

קוד:

function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

למה מופיע שם null ? למה יש פעמיים מרכאות (מחרוזת ריקה בעצם)? אני לא מבין את הקישוריות בין הדברים שם, החצי הראשון של השורה הוא בעצם ג'יבריש בשבילי.
מישהו יכול להסביר לי במילים את השורה הזאת, ואת המטרה שלה (יש בלינק עוד 2 פונקציות שקשורות לעוגייה, אני חושב שיש קשר בין null והמחרוזת הריקה לבין 2 הפונקציות האחרות. אתם יכולים להסביר?)
אני מבולבל לגמרי :<
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
_Ran_
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 29 October 2007
משתמש: מנותק/ת
הודעות: 80
נשלח בתאריך: 01 November 2007 בשעה 18:24 | IP רשוּם
 

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

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 01 November 2007 בשעה 20:04 | IP רשוּם
 

חח

השורה שדיברת עליה משתמשת בביטוי שקיים ב-javascript

קוד:
expr ? valIfTrue : valIfNot


expr זה ביטוי בוליאני (כמו ששמים בתנאי של ה-if)

valIfTrue זה הערך שיתקבל אם הערך אמת

valIfNot זה הערך שיתקבל אם הוא שקר.

כלומר הביטוי שבאדום - אם התאריך הוא NULL אז הוא מחזיר מחרוזת ריקה
ואחרת הוא מחזיר את המחרוזת שדרושה להוספת תאריך התפוגה.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
_Ran_
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 29 October 2007
משתמש: מנותק/ת
הודעות: 80
נשלח בתאריך: 01 November 2007 בשעה 22:06 | IP רשוּם
 

אוקיי סבבה אז אני חושב שהבנתי ^^
בע למה אז דברים כאלה לא מופיעים בW3Schools , זה מעצבן...
יש לך מושג אולי על מקום אחר שכדאי ללמוד ממנו?
בכל מקרה, תודה על העזרה אחי :)
חזרה לתחילת העמוד הצג את כרטיס החבר של _Ran_ חפש הודעות אחרות של _Ran_
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 01 November 2007 בשעה 22:35 | IP רשוּם
 

כי זה אתר של מתחילים, מה לעשות....

תפריד בין השפה והסינטקס לבין ה-DOM, זה שני דברים שצריך ללמוד בנפרד
(קודם הסינטקס)

באמת אין הרבה, תנאים, לולאות, פונקציות, אובייקטים/אתחול אובייקטים,
פרוטוטייפים

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

על אובייקטים אם לא תמצא מקום (למרות שאפשר לחפש בגוגל
javascript prototypes, javascript objects) אתה יכול פשוט לקרוא קוד של
פריימוורקים של מתכנתים איכותיים כמו jquery ודומיו.

מחיפוש בגוגל אני רואה למשל אתר שנראה די אינדקסי כמו W3SCHOOLS אבל
יותר מקיף:

www.javascriptkit.com

אתה מוזמן גם לקרוא את המסמכים בספרייה

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
_Ran_
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 29 October 2007
משתמש: מנותק/ת
הודעות: 80
נשלח בתאריך: 01 November 2007 בשעה 23:33 | IP רשוּם
 

האמת בW3SCHOOLS יש אחלה reference של כל האובייקטים ושל DOM, ואחלה לימוד בסיסי, אבל הלימוד של הדברים המתקדמים יותר לא משהו.
עכשיו ד"א שמתי לב שכן מופיע שם הצורת הצבת תנאי הזאת, ואפילו קראתי אותה ולמדתי אותה, אבל שכחתי מזה לגמרי. פשוט יש לי דף שאני כותב בו את כל מיני דברים חשובים תוך כדי שאני לומד, ושמתי לב שזה מופיע שם, ואז גיליתי שזה מופיע באתר באחד הפרקים הראשונים ^^

ד"א, רציתי להגיד שלמדתי RegExp ד"א האתר שלכם.
http://www.underwar.co.il/document-details.asp?id=132
הלינק למעלה הוא של מדריך מעולה, פשוט פיקס. עזר לי ללמוד את הנושא בקלות.
אבל לפני המדריך הזה, ניסיתי ללמוד עם מדריך אחר מהאתר שלכם והוא ממש בלבל אותי ולא הצלחתי להבין כלום. אחרי שקראתי מהמדריך של ניר, הבנתי שהמדריך השני מלא טעויות ודברים לא נכונים או לא מדוייקים. הנה:
http://www.underwar.co.il/document-details.asp?id=250
כדאי לך לבדוק את העניין, הוא לא מסביר את הביטויים הרגולריים נכון וזה רק יכול לבלבל אנשים. כדאי לתקן אותו או להסיר אותו אני חושב...

עוד שאלה אחרונה בקשר לקוקיז - הבנתי הכל חוץ משני דברים בפונקציה get cookie.
קוד:

function getCookie(c_name)
{
if (document.cookie.length>0)
   {
   c_start=document.cookie.indexOf(c_name + "=")
   if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    }
   }
return ""


יש לך לינק לW3SCHOOLS למעלה , כדי לראות את שתי הפונקציות האחרות אם אתה צריך.
הדבר הראשון - הפונקציה מחזירה את הערך של המשתמש שהוכנס בפעם הקודמת (אם הוכנס), ע"י לקיחת מחרוזת מנק' X לנק' Y. הבנתי את הגדרת נקודת ההתחלה, אבל לא את הגדרת נקודת הסוף. תוכל להסביר את ההיגיון מאחורי שני המקרים להגדרת נקודת הסוף?
הדבר השני - הפונקציה מחזירה בכל מקרה מחרוזת ריקה, return "" נמצא מחוץ לסוגריים של התנאי, הוא לא מותנה בכלום. כלומר, אם c_start שונה מ1- , אז מוחזר ערך המשתמש, ואז אחרי זה מוחזרת מחרוזת ריקה. איך זה יכול להיות? לא יכולים להיות מוחזרים שני דברים... אז אולי אם שני ערכים מוחזרים מתקבל רק הראשון?
תודה מראש :)

חזרה לתחילת העמוד הצג את כרטיס החבר של _Ran_ חפש הודעות אחרות של _Ran_
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 02 November 2007 בשעה 10:35 | IP רשוּם
 

_Ran_ כתב:
האמת בW3SCHOOLS יש אחלה reference של כל האובייקטים


וואו!!

ממש לא.

תשובה ראשונה:

אחרי כל העוגיות יש נקודה פסיק (;)

אחרי האחרונה אין.

ולכן מחפשים אם אחרי ההתחלה של הקוקי (name=) יש נקודה פסיק אז לוקחים את
המחרוזת בין ההתחלה לנקודה פסיק.

אם אין אז לוקחים עד סוף המחרוזת (document.cookie מחזור מחרוזת,
document.cookie.length זה האורך שלה).

ובקשר לשאלה השנייה, ב-javascript ברגע שאתה מחזיר ערך עם return נגמרת הריצה של
הפונקציה, ולכן לא מגיעים ל-return השני.

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

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
_Ran_
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 29 October 2007
משתמש: מנותק/ת
הודעות: 80
נשלח בתאריך: 02 November 2007 בשעה 20:04 | IP רשוּם
 

בקשר לW3SCHOOLS , זה היה נראה לי דווקא רפרנס מקיף וטוב, אבל אני סומך עליך אם אתה אומר :)

בקשר לreturn , תודה על התשובה, שיערתי שזה משהו כזה.
בקשר לתשובה על העוגיות, תודה דבר ראשון. דבר שני - אני פשוט כתבתי עכשיו איזשהו קטע קוד ארוך בJS לא קשור לעוגיות, אבל פשוט אין לי כוח להתעסק עם JS יותר היום בגלל זה, אז אני לא מסוגל לקרוא לעומק את התשובה שלך כי אני מותש ^^ אני חושב שהבנתי, אבל אם מחר אני אראה שלא, אז אני אפנה אליך שוב. הרבה תודה :)

הדבר השלישי והאחרון הוא קטע קוד שכתבתי עכשיו. זה בעצם אותו מנגנון שמחפש כמה פעמים ביטוי מופיע בתוך ביטוי אחר, רק עם כל מיני שיפורים. סתם רציתי לאתגר את עצמי :)
המנגנון נותן לך את האפשרות לחפש מספר הופעות של ביטוי אחד בתוך ביטוי אחר, וישנה אפשרות להפוך את החיפוש ל case sensitive/insensitive.
הסקריפט בעצם מכיל 2 קודים שונים לביצוע הפעולה -
אחד מבוסס על השיטה שלי - שימוש בindexof() , ובמקרה של insensitive , יש שימוש ב toLowerCase() .
השני מבוסס על השיטה שלך שושן - כפי שכתבת בעמוד הראשון, תוך שימוש בביטוי רגולרי.
המנגנון נותן לך לבחור בין השיטות.
אם בא לך לראות איך הוא עובד, הנה הקוד (ההעתקה לכאן קצת בילגנה את הסדר):
קוד:

<html>
<head>
    <title></title>

    <script type="text/javascript">
<!--
//function that decides which funtion to use to make the search, in case of no choice of the user - alerts a message
function decidecounter (txt,srch)
{
if (!document.txtform.fmethod[0].checked && !document.txtform.fmethod[1].checked) alert("You must choose a searching method!")
else if (document.txtform.fmethod[0].checked) rcounter(txt,srch)
else if (document.txtform.fmethod[1].checked) scounter(txt,srch)
}

//Ran's method

function rcounter(txt,srch)
{
var shownumber=0
var nexttime=0
var i=0
if (document.txtform.lcase.value=="insen")
{
srch=srch.toLowerCase()
txt=txt.toLowerCase()
}
while (i<txt.length)
{
i=txt.indexOf(srch,nexttime)+1
nexttime=i
if (i==0) {break}
shownumber++
}
alert("Ran's method: The string \"" + srch + "\" appears " + shownumber + " times in the text")
}

//Shoshan's method

function scounter(txt,srch)
{
if (document.txtform.lcase.value=="insen") var rsrch = new RegExp(srch, "gim")
else rsrch=srch
var shownumber = txt.split(rsrch).length-1
alert("Shoshan's method: The srting \"" + srch + "\" appears " + shownumber + " times in the text")
}
//-->
    </script>

</head>
<body>
    <!-- all input areas. textarea and textinput's content are being deleted on focus. -->
    <form name="txtform" onsubmit="decidecounter(mytxt.value,search.value)">
    <textarea rows="10" cols="50" name="mytxt" onfocus=this.innerHTML=""> Write the text here </textarea>
    <p>
        <input type="text" name="search" value="Write the searched phrase here" size="30"
            onfocus=this.value="" />
        <select name="lcase">
            <option value="sen"> Case Sensitive Search </option>
            <option value="insen"> Case Insensitive Search </option>
        </select>
    </p>
    <p>
        <input type="radio" name="fmethod" value="r" />
        Ran's Method
        <input type="radio" name="fmethod" value="s" />
        Shoshan's Method
    </p>
    <p>
        <input type="submit" value="search now" />
    </p>
    </form>
</body>
</html>



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

 onfocus="this.innerHTML="""

אז כאילו המרכאות הראשונות והשניות הם זוג, והשלישית והרביעית הם זוג. איך כותבים את זה כדי שזה יהיה תקין?
2) עוד משהו בקשר למקומות האדומים - במקרה של textarea ניתן להשתמש בthis.innerHTML ובthis.value . שניהם עובדים, אבל הinnerHTML גורם לאפקט רק בפעם הראשונה שהמקרה קורה, ו value תמיד (כלומר בinnerHTML רק פעם ראשונה שעושים פוקוס זה מוחק את התוכן, ובvalue תמיד כשעושים פוקוס זה מוחק).
לעומת זאת, בinput type="text" זה לא ככה, ניתן להשתמש רק בthis.value .
מדוע ההבדלים (האמת אני מבין למה אפשר להשתמש רק בvalue בinput, אבל אני לא מבין איך אפשר להשתמש גם בvalue בtextarea , ומדוע ההבדל באפקט בין value לinnerHTML )?
חזרה לתחילת העמוד הצג את כרטיס החבר של _Ran_ חפש הודעות אחרות של _Ran_
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 03 November 2007 בשעה 10:29 | IP רשוּם
 

1. איפה שחייבים לבחור, ורק אופציה אחת, נהוג להשתמש ב-radio button
ולא ב-checkbox.

2. בתור ערך של תכונה לא שמים גרשיים, שמים או גרש (') או ששמים

קוד:
"


שזה שווה ערך לגרשיים.

3. INNERHTML זאת לא תכונה שנהוג להשתמש בה ב-inputים, זה יותר
כשרוצים לשנות תוכן של אלמנטים כלליים (P, DIV, SPAN, מה שזה לא יהיה)

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
_Ran_
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 29 October 2007
משתמש: מנותק/ת
הודעות: 80
נשלח בתאריך: 03 November 2007 בשעה 13:03 | IP רשוּם
 

1. לא השתמשתי כאן בcheckbox , השתמשתי בradio , הדגשתי את זה בכחול עכשיו כדי שלא תצטרך לחפש.

ד"א, הדרך היחידה לבדוק איזה רדיו מסומן זה הדרך שכתבתי (השתמשתי בתכונה checked) , או שיש דרך שכוללת שימוש בvalue (ניסיתי את זה בהתחלה ולא הצלחתי, הקוד לא עבד).  הדגשתי את המקום הרלוונטי בירוק.

2. לא הבנתי מה שמת בקטע קוד? זה לא גרשיים? או שזה גרש+גרש? ' + '

3. אוקיי, אז אני אשתמש בvalue בשניהם.

הרבה הרבה תודה על העזרה שושן :)

חזרה לתחילת העמוד הצג את כרטיס החבר של _Ran_ חפש הודעות אחרות של _Ran_
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 03 November 2007 בשעה 14:27 | IP רשוּם
 

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

ואם תעשה שאחד מהם יהיה בחור בתור ברירת מחדל אז לא תצטרך לבדוק מצב שבו
שניהם לא בחורים ויהיה לך רק if else

ושמתי

קוד:
&quot;


זה פשוט לא נשלח טוב.


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
_Ran_
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 29 October 2007
משתמש: מנותק/ת
הודעות: 80
נשלח בתאריך: 04 November 2007 בשעה 00:59 | IP רשוּם
 

אתה תותח! חחחחח אתה לא מבין כמה אתה עוזר לי :) הרבה הרבה הרבה תודה שוב D:
אני עכשיו עובר עוד פעם אחרונה לזמן הקרוב על קוקיז...שונא קוקיז :P
ד"א יש לי שאלה שהיא לא קשורה לJS :
אחת מהמטרות שבשבילן אני התחלתי ללמוד תכנות זה כדי אולי להרוויח כסף מבניית אתרים. יש לי פשוט 2 אנשים שאני מכיר שעושים מזה כסף לא רע (אני מודע לזה שייקח עוד הרבה זמן עד שאני אגיע למצב שאני ארוויח כסף מהידע הזה, אבל צריך להתחיל מתישהו...). אני עכשיו די לקראת סיום JS (אני חושב), ואני מתלבט מה ללמוד הלאה. בעיקרון המטרה הראשית היא שפת צד שרת -
ואני לא יודע מה לבחור ASP.NET או PHP. בהתחלה הייתי מכוונן על ASP , אבל אז ראיתי שהבקשות לבניית אתרים (הסתכלתי בכל מיני פורומים) הן 99% בPHP ולא ASP. מה אתה אומר שושן (או כל מישהו אחר שיש פה בפורום)? כדאי ללמוד PHP או ASP ולמה?

ד"א, אני לא מתכוון להתחיל ישר אחרי JS , אני קודם צריך ללמוד CSS וXHTML..
חזרה לתחילת העמוד הצג את כרטיס החבר של _Ran_ חפש הודעות אחרות של _Ran_
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 04 November 2007 בשעה 11:29 | IP רשוּם
 

יופי בקשר לד"א.

והייתי אומר שתלמד את שניהם, ברגע שתלמד PHP יהיה לך מאוד פשוט ללמוד ASP
די במהירות.

העבודה הכללית מאוד דומה, יש הבדלים במתי שמותך לך לשלוח headers, ואיך
שעובדים עם רכיבים (מסדי נתונים / אימייל / קבצים / עיבוד תמונה / מה שזה לא
יהיה)

ב-PHP הפכו חלק מהדברים האלו לפחות תלויי רכיבים חיצוניים ויותר פשוטים, גם
הוסיפו כל מיני פונקציות שימושיות, כל שפה והיתרונות שלה.

האמת שלא הייתי אומר שיש פי 1000 יותר עבודות עם PHP, הייתי ממליץ להכיר את
שניהן, פשוט אחסון תומך PHP יותר זול מאחסון של ASP, וPHP זו שפה שיוצאות
גרסאות חדשות שלה ו-ASP די מתה כי מיקרוסופט עובדת רק על ASP.NET

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

אתה מוזמן לשאול שאלות חדשות בנושאים חדשים.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

מצטערים, אינך יכול/ה להגיב לנושא זה.
נושא זה נעול.

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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