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

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

LBY 26-11-05 14:56

שאלה על include בASP
 
רציתי להשתמש לאתר שלי (שבASP) בinclude במקום באיי פריים, אז כותבים:
קוד:

<!--#include file=-->
ושם הקובץ, עכשיו רציתי להשתמש במשתנה שאני אעביר דרך הURL בדפים, כאילו שאם לוחצים על כפתור מסוים המשתנה שאני אבחר ישתנה לשם הדף, ואז בinclude אני אעשה שהוא יהיה שווה למשתנה, נגיד:
קוד:

<!--#include file="<%=Page%>"-->
אז עשיתי את זה אבל זה כותב לי שגיאה שכאילו הוא מנסה לפתוח דף שקוראים לו <%=Page%> ולא את הערך של זה, אז איך אני יכול לעשות שזה יקח את הערך ולפי זה יפתח דף? אפשר להשתמש בcase אבל זה כבר סתם מאריך ואני לא יוכל לעשות את זה אוטומטי

astricks 26-11-05 14:58

לפי מה שידוע לי, ב asp, ה include מתבצע ראשון (כמו שבמתמטיקה כפל קודם לחיבור). לכן המשתנה ריק בעצם.

Valid 26-11-05 15:04

הוא פותח את האינקלוד לפני הקימפול של הקוד, וגם לפני ההפעלה של המנגנון שמריץ את הקוד שלך. לכן אתה לא יכול להשתמש במשתנה בשם הקובץ.

LBY 26-11-05 17:00

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

אם לא אז יש משהו אחר שאפשר להשתמש בו שיותר טוב מאיי פריים? כי אז כשרציתי להשתמש באיי פריים אמרו לי להשתמש בinclude אבל זה לא כל כך אפשרי..

somebody 26-11-05 17:05

תשתמש ב:
Server.Execute ("")
עושה אותה פעולה כמו INCLUDE רק אחרי כל הפעולות.
זאת אומרת אתה יכול להשתמש בו במשפט IF או לעשות מה שאתה רוצה לעשות עם ה INCLUDE.
בהצלחה:)

activate 26-11-05 17:59

ציטוט:

נכתב במקור על ידי somebody
תשתמש ב:
Server.Execute ("")
עושה אותה פעולה כמו INCLUDE רק אחרי כל הפעולות.
זאת אומרת אתה יכול להשתמש בו במשפט IF או לעשות מה שאתה רוצה לעשות עם ה INCLUDE.
בהצלחה:)

זה לא אותו דבר

server.execute לא מעביר פונקציות (אם קיימות בדף שצריך לאנקלד)

Neoteric 26-11-05 18:18

תשתמש ב-CASE. נגיד המשתנה שדרכו אתה מעביר הוא-URL אז הנה דוגמא קצרה:
קוד:

<%
SELECT CASE request.querystring("url")
  Case help
%>
  <!--#include file="help.asp"-->
<%
  Case about
%>
  <!--#include file="about.asp"-->
<%
  Case Else
%>
  <!--#include file="index.asp"-->
<%
  End SELECT
%>

קצת מסורבל אבל זו הדרך שבא עושים את זה.

activate 26-11-05 18:31

ציטוט:

נכתב במקור על ידי PhoenixBoy
תשתמש ב-CASE. נגיד המשתנה שדרכו אתה מעביר הוא-URL אז הנה דוגמא קצרה:
קוד:

<%
SELECT CASE request.querystring("url")
  Case help
%>
  <!--#include file="help.asp"-->
<%
  Case about
%>
  <!--#include file="about.asp"-->
<%
  Case Else
%>
  <!--#include file="index.asp"-->
<%
  End SELECT
%>

קצת מסורבל אבל זו הדרך שבא עושים את זה.

זו גם לא הדרך שבה עושים את זה

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

Neoteric 26-11-05 18:41

ציטוט:

נכתב במקור על ידי activate
זו גם לא הדרך שבה עושים את זה

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

ניסיתי בעצמי וזה עובד. אל תגיד דברים בלי ביסוס.

activate 26-11-05 19:04

ציטוט:

נכתב במקור על ידי PhoenixBoy
ניסיתי בעצמי וזה עובד. אל תגיד דברים בלי ביסוס.

כמו שאמרתי לך, ה SERVER קודם כל מוסיף את ה includeים ואח"כ בודק לפי ה IFים מה צריך להפעיל.

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

בקיצור, היעילות של האפליקציה שלך בזבל.

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


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

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