שילוב java script ו php

eyal_sperling

New member
שילוב java script ו php

שלום אני רוצה לשלב משפט javascript בתוך tag של href , הנמצא בתוך script של php . מהי הדרך הנכונה לעשות את זה כי משום מה הסתבכתי תודה אייל
 

kensaggy

New member
לא הבנתי מה הבעיה?

echo "<a href=\"javascript:alert('PHP');\">PHP</a>";​
??? זה מה שרצית?
 

eyal_sperling

New member
בוא נהייה קצת יותר מדוייקים ...

אני רוצה לייצר לינק שאליו אני מעביר פרמטרים דינמיים ( משתני php ) ואת ה javascript אני צריך רק בשביל לשלוט בגודל החלון שמתקבל . חיפשתי לא מעט ב Google אבל הצלחתי למצוא את מה שחיפשתי ( הרבה דוגמאות התייחסו לבניית פונקציות ב Javascript שה Url בהן מקובע ולא בורו לי איך אני מעביר לה פרמטרים ) . לא נראה לי שזה אמור להיות כל כך מסובך . אם למישהו יש דרך אחרת לשליטה בגודל חלון מתוך php בלי שפות סקריפט אחרות אני אשמח לדעת אייל
 

eyal_sperling

New member
תודה .

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

bnayal

New member
בשביל שהמרכאות

לא יתנו שגיאה, אני מחליף את ה-/" ל-' זה משנה?
 

kensaggy

New member
זה נותן תוצאה שונה ב HTML...

ולפי התקן אם אני זוכר נכון זה אמור להיות מרכאות כפולות (")
 

kensaggy

New member
קוראים לזה תו בריחה..

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

eyal_sperling

New member
דרך אגב ..

השתמשתי בדוגמה שנתת לי . מה שקורה בפועל זה שאחרי שהקישור הופעל ונפתח לי החלון החדש הקישור עצמו הופך ל [source] ואני צריך לבצע Refresh לעמוד . מה יכולה להיות הסיבה ? תודה אייל
 

eyal_sperling

New member
לקחתי את הדוגמה שלך

מתחילת השרשור . החלפתי את ה alert ב window.open ואת ההודעה ב url באופן הבא
<?php echo "<a href=\"javascript:window.open('http://www.php.net');\">PHP</a>"; ?>​
אחרי שהחלון נפתח מופיעה במקום הקישור php המילה object בסוגריים מרובעים . האם ניתן לבצע את הפעולה בכלים של php בלבד ( עדיף ...) ולא להשתמש ב js ? דרך אגב : הבדיקה נעשתה ב php גירסה 4.3.4 מעל Windows 2000 תודה אייל
 

אמיר ט

New member
זה עניין של נטו JS

אתה צריך ללמוד לעשות את ההפרדה בין צד שרת לצד לקוח, אי אפשר לערב בניהם. PHP היא שפת צד שרת וכיאה לכך היא לא יכולה לעשות לבד מה שאתה רוצה. JS היא שפת צד לקוח לןכ היא המתאימה ביותר לעשות את מה שאתה רוצה, מה שאתה צריך לעשות זה את הנ"ל :
<?php echo "<a href=\"javascript:window.open('http://www.php.net');return false;\">PHP</a>"; ?>​
צריך רק מעט הבנה כדי להבין מה קורה מאחורי הקלעים שהוביל לאותו [object] מוזר שקיבלת, והנה זכית בהסבר חינם על חשבון הבית : מה שניסית לעשות, בגדול, זה לפתוח חלון, אבל מעבר לקח אמרת לדפדפן ללכת לכתובת שהיא javascript:.... וכאן הרצת סקריפט JS מסוים, הסריפט רק ונפתח החלון, וערך החזרה של window.open בעצם התקבל ככתובת שאליה אתה רוצה ללכת, חלון, הוא [object] ולכן הדפדפן אמר לך, שאתה מנסה ללכת לדף שהוא לא דף אלא אובייקט וכדי לפשט את הדברים ,אין לו מושג מה אתה רוצה מהחיים שלו. ברגע שהחזרת false (כמו בדוגמא שאני עשיתי), בעצם ביטלת את הפעולה של ללכת לכתובת מסוימת ונוצר מצב שרק פתחת את החלון, כמו שרצית. בנוסף יכולת לעשות פיתרון יפה יותר והוא להשתמש ב onClick במקום ב href ואז היית פותר את הבעיה הרבה יותר מהר :
<?php echo "<a onClick=\"javascript:window.open('http://www.php.net');\">PHP</a>"; ?>​
יום טוב.
 

eyal_sperling

New member
כמעט..

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