הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   JQUERY + HTML (https://hosts.co.il/forums/showthread.php?t=93641)

דור 26-11-11 05:06

JQUERY + HTML
 
היי, יש לי 2 שאלות חשובות שאשמח אם מישהו יעזור לי.

1. יש לי דף יHTML שיש בו חלק שאני רוצה לייבא מדף אחר, אני לא רוצה לשים בתוך div או span אלא בתוך "בלוק", פשוט לדחוף את הקוד של הדף השני לאותו מקום שאקבע בדף הראשון. יש תגית בhtml למשל משהו בסגנון של:

קוד:

<block id="dD"></block>
הבעיה שלי שאני מייבא קוד שיש בו כמה tr ורוצה לשים אותם באיזשהו מיקום בטבלה שלי בלי שזה ישתנה בעיצוב. פשוט לדחוף את הקוד מהדף השני אל אותו מיקום בדף הראשון. (ברגע שאני דוחף div או span בתוך הקוד של הטבלה ומייבא כמה trים מדף אחר, זה מעיף את המיקום של מה שהבאתי למקום לא טוב... ולכן אני צריך איזשהו תגית בhtml שאומרת שזה פשוט מיקום של קוד, בלי יותר מדי שאלות)

2. יש לי דף ובו תיבת בחירה (נגללת, dropdownlist). נתאר את הדבר הבא: שדה של מורים שברגע שבוחרים מורה זה מביא את כל התלמידים. לשם כך עשיתי get לדף אחר שפשוט שם יש את הקוד html של הdropdownlist של התלמידים לפי המורה שנבחר (למשל עושה get לדף getstudent/teacher_id). הבעיה שכאשר אני עושה POST (ממלא את הטופס) הפרטים נמחקים מן השדות שיובאו בjquery/ajax, האם יש אפשרות להשאיר אותם איכשהו?

תודה לעוזר,

דור

daNN 26-11-11 05:48

1. אין תגית כזאת בHTML ממה שהבנתי ממך המיקום משתנה בגלל הTable Rows שאתה מייבא (?) מה שאתה כן יכול לעשות זה למחוק את כל השדות tr בעזרת str_replace שלא ישפיע על שאר הטבלה שלך..

2. אתה צריך לבצע את הPost בעזרת Ajax או לשלוח את המורה הנבחר בעזרת שדה hidden (או שיש לך שדה כזה כבר? קשה לעזור בלי לראות את הקוד)

Itay 26-11-11 14:25

1. אתה מנסה להכניס עוד שורות לתוך טבלה קיימת? אם כן - תשתמש ב-append - אם לא, אתה יכול להוסיף טבלה כשאתה מכניס, או להחליף את ה-tr בעמוד שממנו אתה מקבל או אחרי שאתה מקבל עם JS
2. כמו ש-daNN אמר - תעביר את המורה הנבחר לעמוד הבא, ואז אם קיים ערך במורה הנבחר, תעשה טעינה של התלמידים של אותו מורה ברגע שהעמוד עולה (window.onload או $(function()..)

BuildDream 26-11-11 17:31

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

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

דור 26-11-11 17:37

הקוד לא נמצא כאן לכן לא אוכל להביא אותו.

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

דור 26-11-11 17:38

ציטוט:

נכתב במקור על ידי almog12 (פרסם 826194)
יש לי רעיון אחר בשבילך. הרשימה של התלמידים תיהיה קבועה, ולא תיובא בAjax.
בAjax תייבא רק את שמות התלמידים, מופרדים בפסיק - ואחרי שהתקבלה הרשימה תשנה את התוכן של הList תלמידים לרשימה החדשה.
לדעתי זאת שיטה טובה יותר מהשיטה שבה השתמשת.

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

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

Itay 26-11-11 18:19

ציטוט:

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

אז פשוט תוסיף את מה שאתה מקבל בתוך טבלה חדשה, כשמה שמכיל את הטבלה הזאת יהיה תא עם colspan של כל התאים באותה שורה
אם אתה רוצה לעשות משהו קצת יותר יפה מבחינת קוד - תשתמש ב-append אבל תוסיף class מסויים לתאים שאתה מקבל, ולפני שאתה מוסיף את התאים החדשים תעבור על הטבלה ותמחק את התאים עם אותו class

ציטוט:

נכתב במקור על ידי דור (פרסם 826197)
הפרטים כן נשלחים, הכל סבבה. הבעיה שאחרי שעשיתי בקשת post הפרטים לא נשארים בדף. מכיוון שכל הדפים שעשיתי להם get לא קיימים. האם יש צורה לשמור את הדף כפי שהיה?

הסברתי מה הדרך לעשות את זה, מה שאתה רוצה זה בעצם משהו שיעבוד עם פריימים - אתה יכול לעשות את זה, אבל זה יהיה ממש מגעיל

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

דור 26-11-11 18:28

איתי:

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

דבר שני, לא כל כך הבנתי, יש מצב תרשום משהו בקטנה שמסביר? דוגמית?

Itay 26-11-11 20:16

אותו דבר כמו שאתה עושה את הבקשה שלך, אתה פשוט מגדיר משהו כמו
PHP קוד:

if(preg_match('/^[0-9]+$/'$_GET['teacherID']))
{
    echo 
'<script type="text/javascript">
    $(function()
    {
        $.get("load_teachers.php?id='
.$_GET["teacherID"].'", function(data)
        {
            // תעדכן את הרשימה שלך
        });
    });
    </script>'
;



דור 27-11-11 00:55

הבנתי, אתה מתכוון להעביר איזשהו list או dictionary ואז למלא את השדה שכבר קיים בדף הראשון, לא חשבתי על זה. רעיון טוב.

תותח, תודה רבה איתי, למדתי :)


כל הזמנים הם GMT +2. הזמן כעת הוא 00:12.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ