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

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



  #1  
ישן 07-10-2008, 21:21
צלמית המשתמש של fcf
  משתמש זכר fcf fcf אינו מחובר  
 
חבר מתאריך: 17.09.05
הודעות: 6,023
שלח הודעה דרך ICQ אל fcf שלח הודעה דרך MSN אל fcf Facebook profile
אי קבלת מידע משדה טקסט עם fckeditor

בניתי מערכת תגובות ולפני יומיים הוספתי לה עורך FCKditor לתגובות.

הבעייה היא שהתוכן של התגובה עצמה הוא ריק אבל התגובה נשלחת, כלומר עורך הFCK לא מחזיר לי את התוכן שלו.

אני צריך לקבל משתנה בשם text ע"י POST.

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

קוד PHP:
 <script type="text/javascript">
var 
oFCKeditor = new FCKeditor('text');
oFCKeditor.BasePath "/fckeditor/";
oFCKeditor.Width "400" ;
oFCKeditor.ToolbarSet 'Basic' ;
oFCKeditor.heigth "120" ;
oFCKeditor.Create();
</script> 


כאן כתוב כיצד להוסיף:
http://docs.fckeditor.net/FCKeditor...tion/JavaScript

הנה העמוד שלי עם התגובות (עשיתי כמה תגובות נסיון ואפשר לראות שהן ריקות)
http://uzone.co.il/index.php?page=guide&id=130

תודה לכולם
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 08-10-2008, 11:21
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 6 שנכתבה על ידי fcf שמתחילה ב "יש שתי דרכים להוספת העורך...."

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

קודם כל שמתי לב שאת הקוד הבא:
קוד:
<script type="text/javascript"> window.onload = function() { var allTextAreas = document.getElementsByTagName("textarea"); for (var i=0; i < allTextAreas.length; i++) { var oFCKeditor = new FCKeditor( allTextAreas[i].name ) ; oFCKeditor.BasePath = "/fckeditor/"; oFCKeditor.Width = "400" ; oFCKeditor.ToolbarSet = 'Basic' ; oFCKeditor.heigth = "120" ; oFCKeditor.ReplaceTextarea() ; } } </script>


שמת בין תגי ה-body, במקום בין תגי ה-head כפי שכתוב שזה צריך להיות.

דבר שני, אין לך בכלל אלמנטים של textarea בעמוד!
לכן המשתנה allTextAreas בקוד הנ"ל שווה לכלום! כי הוא לא מוצא את התגים textarea שבכלל לא נמצאים בעמוד... ואז לא מתבצע חילוף...

דבר שלישי - הדרך הנ"ל תגרום לטעינה כבדה מאוד של העמוד שלך... מספיק עורך FCK אחד בשביל שהעמוד ייחשב ל-"כבד", אז כשאתה עושה מעל 2 עורכים כאלה בעמוד זה יכול להכביד מאוד... קח זאת בחשבון, אם אתה רוצה נוחות...
הצעה שלי לדרך חלופית: כאשר לוחצים על תגובה למשתמש מסוים, בעזרת JS זה יערוך שדה input מסוג hidden וישנה את ערכו לערך ה-id של מי שמגיבים לו.
ועורך ה-FCK יהיה בחלק התחתון בעמוד, מתחת לכל התגובות.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 08-10-2008, 11:48
צלמית המשתמש של fcf
  משתמש זכר fcf fcf אינו מחובר  
 
חבר מתאריך: 17.09.05
הודעות: 6,023
שלח הודעה דרך ICQ אל fcf שלח הודעה דרך MSN אל fcf Facebook profile
בתגובה להודעה מספר 7 שנכתבה על ידי dorM שמתחילה ב "התחברתי עכשיו וניסיתי למצוא..."

אני בדיוק עכשיו עורך כמה שינויים. בגלל זה אין TEXAAREA

אחרי קצת מחשבה הגעתי למסקנה שממש לא משתלם לי להחליף כל TEXTAREA בעורך.

יכולות להיות בעמוד הזה עשרות עד מאות תגובות. מה שייצור עשרות עד מאות עורכי תוכן מה שיגרום לעמוד להיטען במשך שעות.

החלטתי ליצור TEXTAREA אחד שיקפוץ כאשר אתה תלחץ על לחצן הוספת התגובה.
הוא יקפוץ בDIV גבוה יותר משאר העמוד.

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

אפשר ללחוץ על אחד מלחצני התגובה ולראות שקופצת הודעה.

הבעייה היא שההודעה קופצץ בגובה 0 של העמוד.
איך אני מקבל בJS את הגובה העכשווי של העמוד. ? כלומר אם אני גולל למטה 300 פיקסל את העמוד אני יקבל 300 ??
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 08-10-2008, 14:53
צלמית המשתמש של fcf
  משתמש זכר fcf fcf אינו מחובר  
 
חבר מתאריך: 17.09.05
הודעות: 6,023
שלח הודעה דרך ICQ אל fcf שלח הודעה דרך MSN אל fcf Facebook profile
בתגובה להודעה מספר 13 שנכתבה על ידי dorM שמתחילה ב "scrollLeft and scrollTop..."

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

בקיצור. גם ככה זה לא עובד.
המטרה היא ליצור DIV עליון בגודל 100%*100% שיהיה הרקע חצי שקוף ומעליו DIV ממורכז שיהיה תיבת התוכן העשיר.

זה הקוד להפעלה:

קוד PHP:
 function showhideform(id)
{
          var 
container document.getElementById("top1");
          
container.style.display = (container.style.display == "block")?"none":"block";  
          
container.style.top document.scrollTop;
           var 
container document.getElementById("top2");
          
container.style.display = (container.style.display == "block")?"none":"block";  
          
container.style.top document.scrollTop;




זה התוכן הקופץ:

קוד PHP:
 echo"


<div style=\"position:absolute;left:0;width:100%;height:100%;z-index=20;background-Color:#000000;display:none;opacity:.50;filter: alpha(opacity=50); -moz-opacity: 0.5;\" name=\"top1\" id=\"top1\" >
<table style=\"height:100%;width:100%;\"><tr><td></td></tr></table>
</div>

<div style=\"position:absolute;left:0;width:100%;height:100%;z-index=30;display:none;\" name=\"top2\" id=\"top2\">
<table style=\"height:100%;width:1;\" align=\"center\"><tr><td valign=\"center\">

<table width=\"1\" align=\"center\" border=\"1\" style=\"border-collapse: collapse;\" bordercolor=\"#C4C4C4\">

<tr><td>
"
;
if(
$username!="")
{
echo 
"
<form method=\"post\" action=\"index.php?page=sendpost\">
<center><textarea name=\"text\">הכנס כאן את תוכן התגובה שלך</textarea></center>

<input type=\"hidden\" value=\"
$level\" name=\"level\">
<input type=\"hidden\" value=\"
$revpost\" name=\"revpost\">
<input type=\"hidden\" value=\"
$guide_id\" name=\"guide_id\">


<br>
<center><input type=\"submit\" value=\"הוסף את תגובתך\">&nbsp;<input type=\"button\" onClick=\"closetop()\" value=\"סגור\"></center>
<br>
</form>
"
;
}
echo
"
</td></tr>
</table>

</td></tr></table>
</div>

"





משום מה, הכול מופיע במיקום לא נכון,בתחתית העמוד.
עריכה: באקספלורר כלום לא קורה !

עריכה: המיקום שהתוכן הקופץ מופיע בו הוא המיקום שבו הוא יושב בעמוד, כאילו הוא בכלל לא בZ-INDEX גבוה.

http://uzone.co.il/index.php?page=guide&id=126
(לחצו למטה על "הוספת תגובה" כדי לראות)
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה


נערך לאחרונה ע"י fcf בתאריך 08-10-2008 בשעה 15:15.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #15  
ישן 09-10-2008, 18:09
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 14 שנכתבה על ידי fcf שמתחילה ב "גם ככה לא עובד. חבל שבדוגמא..."

עשיתי משהו שדומה ברעיונו לדבר שאתה רוצה לבצע.
אציג לך את הקוד שלי, ותנסה לפיו לבנות את מה שאתה רוצה.

קוד ב-JS, של החלון השקוף למחצה המכסה את כל מסמך ה-HTML
קוד:
/******************* * JS Code ********************/ /* *Description: Finds inner window's width & height. returns a [Width,Height] array. */ function wSize() /* 'w' stands for 'window' */ { return [ (document.documentElement.clientWidth || document.body.clientWidth || window.innerWidth || 0), /* return window's width */ (document.documentElement.clientHeight || document.body.clientHeight || window.innerHeight || 0) /* return window's height */ ]; } var WD = wSize(); // Inner window Dimensions var WS_Height = document.body.parentNode.scrollHeight > document.body.parentNode.offsetHeight ? document.body.parentNode.scrollHeight : (WD[1] > document.body.parentNode.offsetHeight ? WD[1] : document.body.parentNode.offsetHeight ); WS_Height = WS_Height > WD[1] ? WS_Height : WD[1]; cancelClick = document.createElement('div'); cancelClick.className = 'cancelClick'; cancelClick.style.width = parseInt(document.body.offsetWidth) + 'px'; cancelClick.style.height = WS_Height + 'px'; document.body.appendChild(cancelClick);


והנה קוד ה-CSS של החלון:
קוד:
/******************* * CSS Code ********************/ .cancelClick { background-color:black;/* A transparent value is NOT possible here. IE doesn't renders it well, and therefore the functionality is damaged*/ filter: alpha(opacity=50); /* For IE */ opacity: 0.5; /* For FF, Opera etc. */ position: absolute; display:inline-block; top:0; left:0; }


קוד ה-JS של האלמנט הממורכז (מעל לחלון השקוף למחצה):

קוד:
/******************* * JS Code ********************/ this.obj = document.createElement('div'); // Center the element this.obj.style.top = WD[1]/2 + parseInt(document.body.parentNode.scrollTop) + 'px'; this.obj.style.left = WD[0]/2 + 'px'; this.obj.style.height = 0; this.obj.style.width = 0;


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

בנוסף שים לב שבקוד כתבתי this.obj בגלל שזה משתנה "מחלקה" ב-JS. תשנה את זה אצלך למשתנה "רגיל" אם תצטרך...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 09-10-2008, 18:54
צלמית המשתמש של fcf
  משתמש זכר fcf fcf אינו מחובר  
 
חבר מתאריך: 17.09.05
הודעות: 6,023
שלח הודעה דרך ICQ אל fcf שלח הודעה דרך MSN אל fcf Facebook profile
בתגובה להודעה מספר 15 שנכתבה על ידי dorM שמתחילה ב "עשיתי משהו שדומה ברעיונו לדבר..."

מצויין!
עובד, אפילו באקספלורר

הנה הקוד שלי:

קוד PHP:
 function showhideform(id)
{
          var 
container document.getElementById("top1");
          
container.style.display = (container.style.display == "block")?"none":"block";  
          
container.style.top =  parseInt(document.body.parentNode.scrollTop) + 'px'

           var 
container document.getElementById("top2");
          
container.style.display = (container.style.display == "block")?"none":"block";  
          
container.style.top =  parseInt(document.body.parentNode.scrollTop) + 'px'




עכשיו הקטע היותר מסובך בשבילי הוא כיצד לשלוח את הטופס. אני צריך לשלוח משתנה שילקח מJS.
המשתנה ישלח בטופס ע"י INPUT בצורת HIDDEN
כל לחיצה על לחצן מסויים אמורה לשלוח משתנה מסויים שיגדיר את עומק התגובה ביחס לעץ התגובות. אין לי ממש מושג איך לעשות גם את זה .

ראו כאן למשל: http://uzone.co.il/index.php?page=guide&id=34

יש שלוש תגובות, וארבעה לחצני תגובה (לחצן להגיב לכל תגובה + תגובת מפתח)
עם כל לחיצה על לחצן מסויים אני אמור לשלוח משתנה אחר בצורת HIDDEN.

תודה לכולם ובעיקר לDCD
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #17  
ישן 09-10-2008, 19:22
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 16 שנכתבה על ידי fcf שמתחילה ב "מצויין! עובד, אפילו..."

שמח שעובד
אני מתאים את הקוד שלי לכל הדפדפנים ה"גדולים", ולכן זה היה חייב לעבוד גם ב-IE 6/7 .
(שים לב שלפחות ב-IE6, החלון\div שמכסה את כל אתרך, לא יוכל לכסות תיבת select, בגלל הבאג הידוע ב-IE6... אולי יש אותו ב-IE7, לא בטוח)

ציטוט:
עכשיו הקטע היותר מסובך בשבילי הוא כיצד לשלוח את הטופס. אני צריך לשלוח משתנה שילקח מJS.
המשתנה ישלח בטופס ע"י INPUT בצורת HIDDEN
כל לחיצה על לחצן מסויים אמורה לשלוח משתנה מסויים שיגדיר את עומק התגובה ביחס לעץ התגובות. אין לי ממש מושג איך לעשות גם את זה .


זה החלק הכי קל!
אתן לך דוגמא ליישום.
לכל האלמנטים של ה-input עם הלחצן של הוספת תגובה, תוסיף פונקציה הפועלת באירוע onclick, כאשר יש לה פרמטר אחד והוא מספר הזהות (id) של התגובה. במידה ולתגובה אין מספר זהות, ערך הפרמטר יהיה 0 (שאז התגובה תהיה להודעה הראשית והראשונה ב"אשכול").
הפונקציה הזו תשנה את ערך מאפיין ה-value של שדה input מסוג hidden הנמצא בין תגי ה-form. שים לב שמספיק רק שדה אחד כזה! אל תיצור X שדות כמספר התגובות בעמוד...
לפי ערך ה-value של שדה ה-input מסוג ה-hidden תוכל לדעת לאיזו תגובה הגיבו.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #19  
ישן 09-10-2008, 20:13
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 18 שנכתבה על ידי fcf שמתחילה ב "את התיאוריה גם אני הבנתי. מה..."

אהה טוב אראה לך את הדרך הפשוטה ביותר כדי להקל עליך.
קוד:
<!-- HTML CODE --> <form ...><div><!--div tag for XHTML Strict 1.0 compatibility --> <input type="hidden" name="respond_to" id="Res" value="0" /> <!-- Start comments section --> <!-- Comment id:1 --> <div>Bla bla bla... this is a comment</div> <input type="button" value="הוסף תגובה" onlick="respond_to(1)" /> <!-- Comment id:2 --> <div>Bla bla bla... this is a comment</div> <input type="button" value="הוסף תגובה" onlick="respond_to(2)" /> <!-- Comment id:.. --> <!-- etc... --> </div></form> <!-- JS CODE --> <script type="text/javascript"> function respond_to(comment_id) { if (comment_id) // if comment_id != 0 document.getElementById('Res').value = comment_id; } </script>


ההצבה של המספרים בקריאה לפונקציה respond_to תתבצע ע"י צד השרת, שבאמצעות לולאת while עובר על התגובות, ויש לו את מספרי הזהות של כל תגובה.

כלומר:

קוד PHP:
 // The PHP code
while($comment mysql_fetch_array($resource))
{
   echo 
'<!-- Comment id:',$comment['comment_id'],' -->
<div>'
,$comment['comment_content'],'</div>
<input type="button" value="הוסף תגובה" onlick="respond_to('
,$comment['comment_id'],')" />';




---------------------

יש דרך אחרת, כללית, נוחה יותר ומתאימה להיבט ה-XML'לי, ע"י תפיסת אלמנט מסוים בעזרת getElementsByTagName וסינון האלמנטים בעזרת מאפיין class מתאים, כאשר מאפיין ה-class מעיד על תפקיד אלמנט ה-input (אם הוא נועד לקביעת ערך ה-value של ה-input מסוג ה-hidden באירוע onclick). בתהליך הסינון אתה קובע אירוע onclick מתאים לכל אלמנט, שזהו האירוע בפונקציית respond_to הנ"ל.

נערך לאחרונה ע"י dorM בתאריך 09-10-2008 בשעה 20:16.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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