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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP + HTML] הצבת משתנים דרך onclick (?!) (https://hosts.co.il/forums/showthread.php?t=56102)

miniature 05-11-07 17:45

[PHP + HTML] הצבת משתנים דרך onclick (?!)
 
יש דרך כלשהי לעשות onclick="$a=2" ? הכוונה שכשאני אלחץ זה יציב משתנה?

תודה,

BlueNosE 05-11-07 21:20

ציטוט:

נכתב במקור על ידי miniature (פרסם 575429)
יש דרך כלשהי לעשות onclick="$a=2" ? הכוונה שכשאני אלחץ זה יציב משתנה?

תודה,

יואב, אתה באמת שואל?
או שלא הבנתי אותך או שלא שמעת בחיים על AJAX.

miniature 05-11-07 21:59

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 575533)
יואב, אתה באמת שואל?
או שלא הבנתי אותך או שלא שמעת בחיים על AJAX.

בכוונה כתבתי PHP+HTML ולא AJAX ;P
אני מנסה לעשות את זה בלי AJAX, כי אני לא יודע AJAX. :-0

חיים 05-11-07 22:01

ציטוט:

נכתב במקור על ידי miniature (פרסם 575544)
בכוונה כתבתי PHP+HTML ולא AJAX ;P
אני מנסה לעשות את זה בלי AJAX, כי אני לא יודע AJAX. :-0

אחי בו נגיד ככה אם היה אפשר לקבוע דברים ב-PHP בלי AJAX כבר כל האתרים שאתה רואה בעולם היו בלי לרענן עמודים בכלל ובלי כלום חחח כמובן שאפשר רק עם AJAX וזה דווקה די קל אפילו שאתה לא יודע זה לא נורא אתה יכול לקורא איזה מאמר אחד או שניים ואני בטוח שתבין הכל |קורץ|
אז בקיצור הדרך היחידה זה AJAX ותלמד אותו קצת וזה ילך לך חלק אני חושב :-D

miniature 05-11-07 22:16

ציטוט:

נכתב במקור על ידי חיים (פרסם 575545)
אחי בו נגיד ככה אם היה אפשר לקבוע דברים ב-PHP בלי AJAX כבר כל האתרים שאתה רואה בעולם היו בלי לרענן עמודים בכלל ובלי כלום חחח כמובן שאפשר רק עם AJAX וזה דווקה די קל אפילו שאתה לא יודע זה לא נורא אתה יכול לקורא איזה מאמר אחד או שניים ואני בטוח שתבין הכל |קורץ|
אז בקיצור הדרך היחידה זה AJAX ותלמד אותו קצת וזה ילך לך חלק אני חושב :-D

כל המאמרים שראיתי על AJAX מחזירים נתונים לדף HTML כ echo ולא לדף PHP כמשתנה.. ובגלל זה אני לא יודע איך.

BlueNosE 05-11-07 22:26

את הECHO אתה מכניס לJS כמובן. הECHO לא מדפיס פיזית על הדף.
וחוץ מזה ניתן להשתמש בסשנים וכו'..

miniature 06-11-07 00:40

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 575564)
את הECHO אתה מכניס לJS כמובן. הECHO לא מדפיס פיזית על הדף.
וחוץ מזה ניתן להשתמש בסשנים וכו'..

מה שאני שואל זה איך אני יכול לעשות נגיד פונקציה bla() שהיא AJAX ושהיא תחזיר בסופו של דבר משתנה PHP.

חיים 06-11-07 09:33

ציטוט:

נכתב במקור על ידי miniature (פרסם 575612)
מה שאני שואל זה איך אני יכול לעשות נגיד פונקציה bla() שהיא AJAX ושהיא תחזיר בסופו של דבר משתנה PHP.

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

miniature 06-11-07 16:27

הבעיה היא שאני לא מצליח להחזיר את זה כמשתנה PHP..
אני אביא דוגמה:

PHP קוד:

<?php
$time 
time();
echo 
"<a href=\"javascript:;\" onclick=\"javascript:ajax_calendar();\">שנה קודמת</a>\n";
?>

HTML קוד:

function ajax_calendar() {
  var ajax_cal = ajax_support(); //browsers support
  ajax_cal.onreadystatechange=function() {
    if((ajax_cal.readyState == 4) && (ajax_cal.status == 200)) {
      return ajax_cal.responseText;
    }
  }
  ajax_cal.open("GET","calendar_ajax.php",true);
  ajax_cal.send(null);
}

calendar_ajax.php:
PHP קוד:

<?php
  $time_ajax 
time();
 
  
$today_ajax getdate($time_ajax);
  
$mday_ajax $today_ajax['mday'];
  
$mon_ajax $today_ajax['mon'];   
  
$year_ajax $today_ajax['year'];  
  echo 
mktime(000$mon_ajax,$mday_ajax,$year_ajax-1);
?>

אני רוצה שזה - "return ajax_cal.responseText;" יחזיר משתנה PHP (ישנה את $time ל- $time שיוחזר מה-AJAX) .. איכשהו.

Elad-A 06-11-07 18:37

אני לא חושב שאפשר להעביר את זה למשתנה PHP (אולי לסיישן, או קוקיז)
אז פשוט תעשה משהו כזה בJS:

קוד:

newvar = ajax_cal.responseText;

RS324 06-11-07 23:42

אתה יכול להעביר יותר ממשתנה,
אתה יכול להעביר מערכים, מחלקות ואובייקטים מ PHP ל JS
בקלות באמצעות JSON או XML

למידע על JSON : www.json.org
אבל זה פותח כמה פירצות אבטחה קטנות בעיקר של גניבת מידע
אז אתה תצטרך ללמוד גם איך להגן
הצליחו לגנוב מידע של משתמשים מ GMAIL באמצעות JSON שלא היה מוגן
הנה כמה כתבות בנושא.

http://jeremiahgrossman.blogspot.com...k-hackery.html

http://it.slashdot.org/article.pl?sid=07/01/01/1350219
http://www.cyber-knowledge.net/blog/...-is-now-fixed/

miniature 07-11-07 00:41

ציטוט:

נכתב במקור על ידי RS324 (פרסם 575881)
אתה יכול להעביר יותר ממשתנה,
אתה יכול להעביר מערכים, מחלקות ואובייקטים מ PHP ל JS
בקלות באמצעות JSON או XML

למידע על JSON : www.json.org
אבל זה פותח כמה פירצות אבטחה קטנות בעיקר של גניבת מידע
אז אתה תצטרך ללמוד גם איך להגן
הצליחו לגנוב מידע של משתמשים מ GMAIL באמצעות JSON שלא היה מוגן
הנה כמה כתבות בנושא.

http://jeremiahgrossman.blogspot.com...k-hackery.html

http://it.slashdot.org/article.pl?sid=07/01/01/1350219
http://www.cyber-knowledge.net/blog/...-is-now-fixed/

זה עד כדי כך מסובך? :| אני בסך הכל מנסה לעשות דפדוף בלוח שנה בלי לרענן את הדף..

חיים 07-11-07 09:25

ציטוט:

נכתב במקור על ידי miniature (פרסם 575904)
זה עד כדי כך מסובך? :| אני בסך הכל מנסה לעשות דפדוף בלוח שנה בלי לרענן את הדף..

אני במקומך או שהייתי מכין תלוח שנה ב-JS או שהייתי שולך בעזרת XMLHTTP בקשה לקובץ PHP ואת התוכן שמתקבל (הלוח שנה) מדפיס וזהו זה די פשוט

RS324 07-11-07 13:21

אם זה מה שאתה מנסה לעשות אז AJAX פשוט יספיק לך

miniature 07-11-07 16:33

ציטוט:

נכתב במקור על ידי RS324 (פרסם 576000)
אם זה מה שאתה מנסה לעשות אז AJAX פשוט יספיק לך

אבל אני לא יודע איך |עצוב|
תראה את הדוגמה בעמוד קודם.

RS324 07-11-07 17:19

ציטוט:

נכתב במקור על ידי miniature (פרסם 576070)
אבל אני לא יודע איך |עצוב|
תראה את הדוגמה בעמוד קודם.

אתה צריך לעשות משהו בסגנון של :

PHP קוד:

function getMonthCal(month,year

ואז הפונקציה עושה פוסט לדף CAL.PHP לדוגמא
והיא שולחת את ה MONTH ואת ה YEAR
ואז ב PHP אתה עושה בדיקה פשוטה ועושה שוב בסוף של הלוח שנה
PHP קוד:

echo '<a href=# onclick=getMonthCal('$nextmonth','$year')'

זה פשוט כמעט כמו ליצור לולאה...

miniature 07-11-07 18:15

ציטוט:

נכתב במקור על ידי RS324 (פרסם 576082)
אתה צריך לעשות משהו בסגנון של :

PHP קוד:

function getMonthCal(month,year

ואז הפונקציה עושה פוסט לדף CAL.PHP לדוגמא
והיא שולחת את ה MONTH ואת ה YEAR
ואז ב PHP אתה עושה בדיקה פשוטה ועושה שוב בסוף של הלוח שנה
PHP קוד:

echo '<a href=# onclick=getMonthCal('$nextmonth','$year')'

זה פשוט כמעט כמו ליצור לולאה...

לא הבנתי.. כמה דפי PHP יש בדוגמא שכתבת? :|

RS324 08-11-07 10:33

דף PHP אחד ודף JS אחד

miniature 08-11-07 14:45

ניסיתי ככה ולא קורה כלום:
index.php:
PHP קוד:

if(isset($_POST['time'])) {
  if((
$_POST['time'] == "") || (!filter_var($_POST['time'], FILTER_VALIDATE_INT))) {
    
$time time();
  }
  else {
    
$time $_POST['time'];
  }
}
else {
  
$time time();
}
 
echo 
"<a href='javascript:;' onclick='javascript:ajax_calendar($time);'>שנה קודמת</a>\n"

HTML קוד:

function ajax_calendar(time) {
  var ajax_cal = ajax_support();
 
  ajax_cal.open("POST","index.php",true);
  ajax_cal.send(null);
}


RS324 08-11-07 16:05

רק מהסתכלות מהירה
צריך להיות ככה :
PHP קוד:

onclick="javascript:ajax_calendar('$time');"

הוספתי את הגרש מסביב ל $TIME

miniature 08-11-07 16:30

ציטוט:

נכתב במקור על ידי RS324 (פרסם 576460)
רק מהסתכלות מהירה
צריך להיות ככה :
PHP קוד:

onclick="javascript:ajax_calendar('$time');"

הוספתי את הגרש מסביב ל $TIME

זה כותב לי "שגיאת תחביר" עוד לפני הלחיצה (בגלל הגרשיים) ולא מבצע כלום בלחיצה.

RS324 08-11-07 21:32

טעות שלי פשוט העתקתי מה שכתבת
מהפעם האחרונה שבדקתי ב ONCLICK אתה לא צריך לעשות javascript:
רק ב HREF

Kfir.G 08-11-07 23:59

אתה לא חייב להסתבך עם AJAX בשביל זה ;P מה שאתה יכול לעשות זה להכניס את הלוח שנה בתור iframe ולקלוט ללוח שנה נתונים דרך GET ופשוט לשנות אותם בSRC של הIFRAME :) פתרון פשוט הרבה יותר אבל לדעתי הרבה פחות יעיל (למרות שמעולם לא בדקתי כי אני לא יודע AJAX ;P)

miniature 09-11-07 03:55

ציטוט:

נכתב במקור על ידי RS324 (פרסם 576614)
טעות שלי פשוט העתקתי מה שכתבת
מהפעם האחרונה שבדקתי ב ONCLICK אתה לא צריך לעשות javascript:
רק ב HREF

עשיתי:
HTML קוד:

onclick='ajax_calendar($time)'
ועדיין לא עובד.. אין שגיאה אבל לא קורה כלום.

DavidBD 09-11-07 10:35

כי אמרו לך כבר לפני כן, צריך להוסיף גרשיים:
קוד:

onclick="ajax_calendar('$time')"

miniature 09-11-07 15:17

ציטוט:

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

onclick="ajax_calendar('$time')"

אמרתי כבר לפני כן שזה מחזיר שגיאת תחביר ולא קורה כלום (גם עם javascript:; גם בלי).

fulsyp 09-11-07 15:55

onclick="ajax_calendar('{$time}')"

Rom 09-11-07 20:05

אתה צריך את הדוגמא הכי פשוטה: http://www.1ndex.net/cal/
אתה צריך להתאים את זה ללוח שנה שלך.

miniature 11-11-07 05:13

fsp - שגיאת תחביר, לא עובד.
Rom - שוב אני אומר, אני רוצה להחזיר משתנה PHP ולא לכתוב משהו ב DIV.

BlueNosE 11-11-07 08:08

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

reXtea 11-11-07 12:22

ציטוט:

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

^ צודק ...
הדרך היחידה זה או קוקי או סשן ואז תצטרך באמת לרענן תדף החדש תאמת זה דיי מסובך...

אני חושב שעדיף שתגיד לנו למה אתה צריך לטעון משתנה, וכנראה שיש דרך יותר טובה בלי לטעון משתנה דרך ONCLICK... תסביר לנו.

miniature 11-11-07 17:39

ציטוט:

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

אני חושב שעדיף שתגיד לנו למה אתה צריך לטעון משתנה, וכנראה שיש דרך יותר טובה בלי לטעון משתנה דרך ONCLICK... תסביר לנו.

כל הלוח שנה נבנה על פי המשתנה הזה.

Rom 11-11-07 18:51

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

אתה לא יכול לשנות את המשתנה PHP ופשוט כל הלוח ישתנה.

miniature 11-11-07 19:36

בקיצור, אי אפשר לעשות לוח שנה ב PHP שמשתנה עם AJAX? (הכוונה שהלוח עצמו נבנה ב PHP)

Rom 11-11-07 19:43

אפשר, אבל צריך לשלב בזה AJAX

RS324 11-11-07 19:48

לפי דעתי כל התיכנון של הלוח שלך הוא לא נכוון

miniature 11-11-07 20:44

ציטוט:

נכתב במקור על ידי Rom (פרסם 577731)
אפשר, אבל צריך לשלב בזה AJAX

אתה בעצמך אמרת:
ציטוט:

נכתב במקור על ידי Rom
אתה לא יכול לשנות את המשתנה PHP ופשוט כל הלוח ישתנה.

RS324 - אם הבניה של הלוח שנה עצמו היא ב PHP ולא ב JS, אני יכול לשנות את זה ב AJAX או לא?

Rom 11-11-07 21:57

ציטוט:

נכתב במקור על ידי miniature (פרסם 577758)
אתה בעצמך אמרת:


RS324 - אם הבניה של הלוח שנה עצמו היא ב PHP ולא ב JS, אני יכול לשנות את זה ב AJAX או לא?

התכוונתי שאתה מקבל מידע מדף PHP ומשנה את התוכן של הלוח שנה בהתאם, ולא פשוט משנה את המשתנה PHP. הבנת?

miniature 11-11-07 23:36

ציטוט:

נכתב במקור על ידי Rom (פרסם 577785)
התכוונתי שאתה מקבל מידע מדף PHP ומשנה את התוכן של הלוח שנה בהתאם, ולא פשוט משנה את המשתנה PHP. הבנת?

אני חושב שלא הבנת מההתחלה מה שאלתי.. תראה גם את הקוד שפרסמתי כמה עמודים (:-0) לפני..

RS324 13-11-07 00:07

ציטוט:

נכתב במקור על ידי miniature (פרסם 577758)
אתה בעצמך אמרת:


RS324 - אם הבניה של הלוח שנה עצמו היא ב PHP ולא ב JS, אני יכול לשנות את זה ב AJAX או לא?

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


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

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