PDA

نسخه کامل مشاهده نسخه کامل : چگونه استفاده از چند تگ اسکریپت در صفحات AJAX



Ali_vavan2009
23-02-2012, 13:52
باعرض سلام و خسته نباشید به همه دوستان

دوستان من چند روز پیش داشتم یه مقدار برای خودم برنامه نویسی میکردم که یک دفعه متوجه یک موضوعی شدم.

من در حالت معمول تمام کدهای جاوا اسکریپت خودم را در یک تگ اسکریپت قرار می دهم.

ولی چند رو پیش من بدونه اینکه حواسم باشه در صفحه از 2 تگ اسکریپت استفاده کردم که باعث شد کدم کار نکنه.


من در حالت معمولی به این شکل کار می کنم:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما اون روز به این شکل نوشته بودم:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

که وقتی مقدار خروجی کد:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

را ( که از دوستان همین انجمن گرفتم ) Alert() کردم، به من:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

رو برگردوند.

در حالی که این حالت اشتباه می باشد.

حالا من می خوام بدونم که اگه یه زمانی نیاز بشه در صفحه از چند تگ اسکریپت استفاده بشه

چطوری باید اجراشون کرد؟؟؟؟؟

باتشکر

Ali_vavan2009
24-02-2012, 14:18
سلامی مجدد به همه شما دوستان

دوستان من از دیروز در جستجو جزئیات replace هستم. اما به چیز به درد بخوری نرسیدم.

اگه بتونید یه توضیح بدیدن که چرا این کد بجای برگردوندن مقادیر بین تگ های script مقدار بین تگ شروع اول صفحه و پایان صفحه را بر می گرداند؟؟؟

و توضیح بدین که چطوری باید درستش کرد ممنون می شوم.

باتشکر

peyman1987
26-02-2012, 01:06
عبارت شما یه مشکل کوچیک داره و اونم اینه که در اصطلاح اون علامت + وسط که استفاده شده greedy هستش و باعث میشه که موتور جاوااسکریپت تا انتهای رشته و آخرین تگ بسته script پیش بره و بعد نتیجه رو برگردونه که همین مشکلی که شما دارین پیش میاد.

حالا اگه بجای + از *? استفاده کنین درست میشه و در اصطلاح اون قسمت lazy میشه و اولین تگ بسته اسکریپت رو که دید ادامه نمیده دیگه. پس از عبارت زیر استفاده کنین:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ولی این بار هم کد شما آخرین تگ رو برمیگردونه چون هر بار دارین مقدار متغیر scripts رو تغییر میدین و در انتها آخرین مقدار یعنی محتوای آخرین تگ داخلش میمونه. برای رفع این مشکل هم میتونین scripts رو به یه آرایه تبدیل کنین:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

الان مقدار برگشتی تابع میشه یه آرایه از محتوای تمام تگ های اسکریپت

Ali_vavan2009
27-02-2012, 02:26
دوست عزیز بسیار ممنون

فعلا پشت سیستم خودم نیستم تا ببینم رو سایت کار می کنه یا نه.

ولی اگه بتونید یه منبع در مورد همین علامتها معرفی کنید ممنون میشم.

برای مثال شاید بخوام نوعی شرط تعیین کنم. که چطوری باید این کار رو انجام بدم و ....

مثلا بگم اگه قبل تگ اسکریپت از تگ <p> استفاده شده بود کد رو در صورتی اجرا کنه که کاربر عضو سایت باشه و .....

راستی اصلا یه همچین چیزی شدنی هست؟؟؟؟

Ali_vavan2009
27-02-2012, 15:17
سلام مجدد

دوست عزیز من کد شما رو الان تست کردم و جواب نداد. :41:

وقتی خروجی کد را به نمایش در آوردم دیدم که قبل از تگ پایان اسکریپت یک " , " قرار می دهد که برای آرایه می باشد. :13:

یعنی کد:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

خروجی:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در حالی که باید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

باشد.

که من اومدم و با افزودن join مشکل را برطرف کردم. :5:

اینم از کد آماده تقدیم به همه دوستان :11:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

باتشکر

peyman1987
28-02-2012, 01:48
دوست عزیز بسیار ممنون

فعلا پشت سیستم خودم نیستم تا ببینم رو سایت کار می کنه یا نه.

ولی اگه بتونید یه منبع در مورد همین علامتها معرفی کنید ممنون میشم.

برای مثال شاید بخوام نوعی شرط تعیین کنم. که چطوری باید این کار رو انجام بدم و ....

مثلا بگم اگه قبل تگ اسکریپت از تگ <p> استفاده شده بود کد رو در صورتی اجرا کنه که کاربر عضو سایت باشه و .....

راستی اصلا یه همچین چیزی شدنی هست؟؟؟؟

در واقع عبارات با قاعده شرط نیستن و نمیشه توشون از شرط استفاده کرد. هر عبارت با قاعده یا همون regular expression میاد و دنبال یه سری عبارت داخل رشته ما میگرده که با ساختار تعریف شده همخونی داشته باشه و در نهایت ما میتونیم با نتایج ، کاری رو که میخوایم انجام بدیم مثل اینجا که شما چسبوندینشون به هم. پس فقط میشه نتایج رو فیلتر کرد.

مثالی هم که شما زدین برای اینکه چک کنه قبل یا بعد عبارت ، عبارت دیگه ای باشه یا نه بهش میگن positive/negative look ahead/behind چهار تا حالت داره که باید با پایه عبارات آشنا باشین که بتونین این مباحث رو یاد بگیرین.

بعنوان منبع هم من وب سایت زیر رو معرفی میکنم:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

این سایتم یه منبع برای عبارتهای آماده س:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]