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

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



  #1  
ישן 18-02-2011, 11:43
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
שילוב Ajax עם InnerHTML בעמוד המקור

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

לאחרונה אני מנסה להכניס את כל קודי הhtml בעמוד אחד. זאת אומרת, שבקובץ ajax.php לא יהיה קוד html, אלא רק פקודות php שיקבלו נתונים ויחזירו תוצאות, בלי להיות אחראים על העיצוב.

למישהו יש רעיון איך אני יכול לעשות את זה?
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 18-02-2011, 12:23
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
בתגובה להודעה מספר 2 שנכתבה על ידי שימי שמתחילה ב "אין בעייה להחליף אלמנט בדף..."

נראה לי שהבנת את שאלתי, אבל אני לא הבנתי את תשובתך

המטרה שלי היא בסופו של דבר זה שעמוד הhtml יראה בערך ככה:
קוד:
<div id='usersList'> </div> <div id='editDetails' style='display:none;'> </div>

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

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

מקווה שהצלחתי להסביר את עצמי.

תודה על הקדשת הזמן!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 18-02-2011, 12:33
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 3 שנכתבה על ידי dardevil שמתחילה ב "נראה לי שהבנת את שאלתי, אבל..."

מההתחלה.

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

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

כשגולש מקליק על משתמש לעריכה, אתה עושה את הדבר הבא:
1. מבצע קריאת AJAX לשרת ל URL מבוקש (שמכיל את ה ID של המשתמש לעריכה). זה לא משנה אם היא ב GET או ב POST (שים לב, לא מדובר על שליחת טופס!)
2. בשרת עצמו, אתה מעבד את כל הפרטים שמעניינים אותך בהקשר לבקשת המידע. את המערך עם הנתונים אתה מקודד עם json_encode (לא לשכוח שהכל צריך להיות ב utf-8), ואת הפלט של json_encode, אתה זורק לקליינט.
3. בקליינט אתה מבצע (var details = eval(xmlHttpObject.responseText
4. יש לך בזאת מערך JS-י שמכיל את כל הפרטים
5. משתמש במערך כדי לעדכן את תוכן השדות בהתאם ל id שהוגדר להם מראש, באמצעות עדכון ה value שלו

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

נשמע הגיוני?

נ.ב. שים לב שלא התייחסתי לאלמנטים של אבטחת מידע בהוראות אלה; כלומר וידוא שמבצע הפעולה הוא אכן האדם שגולש באתר, על ידי זה שיש ברשותו מידע שלתוקף לא יכול להיות, ושהתוקף לא יכול לגרום לגולש לשלוח לאתר כחלק מהבקשה [למשל, עוגיות המשמשות להזדהות, וכמובן נשלחות אוטומטית]. זה כבר תרגיל למחשבה בשבילך
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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