• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

جاوا اسکریپت و php استفاده ترکیبی

sky boy

متخصص بخش برنامه نویسی

خب میدونید که جاوا اسکریپت (JavaScript) به عنوان یک زبان اسکریپت نویسی سمت کاربر و قابل اجرا در مرورگر،
به خودی خود فواید و کاربردهای زیادی در صفحات وب داره و تقریبا تمام برنامه نویسان و توسعه دهنده گان از اون استفاده می کنند،
از این گذشته مواردی پیش می آید که بخواهیم از قدرت و قابلیت های آن برای نمایش محتوای داینامیک و به طور خاص در تعامل و ترکیب با PHP استفاده کنیم،
این شیوه یکی از معمول ترین روش هایی هست که بیشتر سایت های خدمات دهنده در زمینه ابزارهای وبلاگ نویسی
برای کوتاه کردن کدهای نهایی و خیلی فواید دیگه از اون استفاده می کنند.

هدف از ترکیب JavaScript و PHP


شرایطی که باعث میشه از جاوا اسکریپت و PHP به صورت ترکیبی استفاده کنیم اغلب به مواردی مربوط میشن که بخواهیم به طور مثال
محتوای داینامیک خروجی داده شده توسط کدهای PHP رو به صورت فریم در صفحات HTML نمایش بدیم،
به طور مثال فرض کنید فایل PHP با آدرس زیر یک آیکون پیج رنگ نمایش میده.

کد:
http://www.yoursite.com/page_rank.php?url=$url&img=5

واضحه که اگه آدرس فرضی بالا در یک مرورگر وارد بشه، آیکون پیج رنک به نمایش در میاد،
اما مسلما امکان درج مستقیم فایل PHP در صفحات HTML وجود نداره و از طرفی تمام و شاید اغلب کاربران این امکان را ندارند که از دستورات سمت سرور استفاده کنند
و محتوای فایل رو نمایش بدند (که اگر هم در شرایطی این طور باشه، با مشکلات و دردسرهای بعدی روبرو میشن)،
به همین خاطر باید به دنبال یک واسطه بین فایل های داینامیک و صفحات HTML استاتیک باشیم،
این واسطه هم چیزی نیست جزء دستورات جاوا اسکریپت که به راحتی میشه به کمک اونها و تنها با چند خط کدنویسی ساده به هدف مورد نظر رسید
و کد نهایی رو به شکل نمونه زیر تغییر داد.

کد:
<script type="text/javascript" src="http://yoursite.com/page_rank.php?url=$url&img=5"></script>

حالا میشه کد اسکریپتی بالا رو در صفحات HTML به راحتی استفاده کرد،
این روش جایگزین مناسبی هست برای تکنیک های مشابه (مانند استفاده از iframe و...)

مراحل انجام کار رو هم در ادامه میذارم پس ادامه داره..
 

sky boy

متخصص بخش برنامه نویسی

فراخوانی فایل PHP در JavaScript

اولین گام اینه که آدرس فایل PHP خودتون رو در قسمت src تگ های جاوا اسکریپت آدرس دهی کنید،
البته اگر تعداد فایل های سمت سرور بیش از یک مورد باشد، فایلی باید در این قسمت تنظیم شود که خروجی را تولید می کند
و نیازی به وارد کردن سایر فایل ها درون دستورات جاوا اسکریپت نیست، به مثال زیر توجه کنید.

کد:
<script type="text/javascript" src="http://yoursite.com/output.php"></script>

نکته 1: اگر فایل سمت سرور (فایل PHP) نیاز به دریافت پارامترهایی داشته باشد،
مانند متد GET در حالت عادی، می توانیم پارامترها را با افزودن علامت ? به انتهای آدرس و استفاده از علامت های & و =، به هر تعداد که لازم است تنظیم کنیم.
نکته 2: استفاده از این روش محدود به لینک های داینامیک نیست،
درواقع با هر لینکی که فایل سرور به درستی توسط آن فراخوانی شود، خروجی دریافت شده و به نمایش در می آید.


 

sky boy

متخصص بخش برنامه نویسی

تنظیمات JavaScript در فایل PHP


در گام دوم و در فایل PHP، باید خروجی کدها را مطابق با syntax دستور document.write تنظیم کنیم،
همان طور که میدنید یک دستور ساده document.write در جاوا اسکریپت به صورت زیر است:

کد:
<script type="text/javascript">
document.write('چاپ خروجی مورد نظر در مرورگر');
</script>

پس وقتی این دستور را در کدهای PHP استفاده می کنیم باید به نکات زیر توجه داشته باشیم.
- درج موارد مربوط به document.write درون تگ های PHP مجاز نیست و باید خارج از علامت های php?> و ?> باشد.
نمونه اشتباه:

PHP:
<?php
document.write('echo "ترکیب جاوا اسکریپت و PHP";');
?>

نمونه صحیح:

PHP:
document.write('<?php
echo "ترکیب جاوا اسکریپت و PHP";
?>');

- به جهت رعایت syntax صحیح و مطابق با دستور العمل جاوا اسکریپت، علامت های ' و " در خروجی را با یک بک اسلش (\) ایمن سازی می کنیم،
دقت کنید که در برخی سرور ها به جهت روشن بودن قابلیت magic_quotes_gpc (این قابلیت علامت های ' و " را با افزودن یک بک اسلش ایمن سازی می کند)،
این کار به صورت خودکار انجام می شود و لذا ابتدا باید این قابلیت را غیر فعال کنید یا بک اسلش های اضافه شده را حذف نمائید
تا از درج دو بک اسلش (یک بک اسلش توسط magic_quotes_gpc و یک بک اسلش دیگر توسط توابعی مانند addslashes) اجتناب شود،
نمونه راه حل زیر می تواند هر دو مشکل را بر طرف کند.

PHP:
document.write('<?php
//تابعی برای حذف بک اسلش های اضافه
function GpcClean($str){
    if(get_magic_quotes_gpc()){
        return stripslashes($str);    
    }
    return $str;
}
//افزودن بک اسلش به خروجی
echo addslashes(GpcClean("ترکیب جاوا اسکریپت و PHP"));
?>');

ملاحظه می کنید که برای بررسی روشن بودن قابلیت magic_quotes_gpc از تابع get_magic_quotes_gpc استفاده شده،
اگر این قابلیت روشن باشد (مقادیر برگردانده شده توسط تابع get_magic_quotes_gpc برابر با TRUE بود)، مقادیر خروجی از ***** تابع stripslashes عبور کرده
و بک اسلش های زائد حذف می شوند، در نهایت نیز با تابع addslashes، هر جا علامت ' یا " در خروجی وجود داشته باشد
به صورت '\ و "\ تبدیل می شوند تا مطابق با syntax دستورات جاوا اسکریپت باشند.
نکته: استفاده از خط جدید (line break) در خروجی، مجاز نیست و موجب از کار افتادن نمایش کد می شود،
به عبارت دیگر نباید از حالت Enter در خروجی کدهای PHP در ترکیب با جاوا اسکریپت استفاده شود.

 

RR20MO

New member
سلام من یه فایل جی کوئری جداگانه دارم و می خوام اونو در php فراخونی کنم ولی نمی دونم چه طوری میشه
میشه کمکم کنید !؟
 
بالا