استفاده ترکیبی از جاوا اسکریپت (JavaScript) و PHP

همان طور که می دانیم جاوا اسکریپت (JavaScript) به عنوان یک زبان اسکریپت نویسی سمت کاربر و قابل اجرا در مرورگرها به خودی خود فواید و کاربردهای زیادی در صفحات وب دارد و تقریبا تمام برنامه نویسان و توسعه دهنده گان از آن استفاده می کنند، اما در کنار این کاربردها مواردی پیش می آید که بخواهیم از قدرت و قابلیت های آن برای نمایش محتوای داینامیک سمت سرور و به طور خاص در تعامل و ترکیب با PHP استفاده کنیم، این شیوه یکی از معمول ترین روش هایی است که بیشتر سایت های خدمات دهنده در زمینه ابزارهای وبلاگ نویسی برای کوتاه کردن کدهای نهایی و خیلی فواید دیگر از آن استفاده می کنند، از این رو و به جهت اینکه پرسش های زیادی از طرف کاربران در این خصوص مطرح می شود، قصد داریم این آموزش را به نحوه استفاده ترکیبی از جاوا اسکریپت (JavaScript) و PHP اختصاص دهیم.
هدف از ترکیب JavaScript و PHP
پیش از اینکه به ادامه آموزش بپردازیم بد نیست در یک جمع بندی کلی با هدف از تکنیک استفاده ترکیبی جاوا اسکریپت (JavaScript) و PHP آشنا شویم.
شرایطی که باعث می شود از جاوا اسکریپت و PHP به صورت ترکیبی استفاده کنیم اغلب به مواردی مربوط می شوند که بخواهیم به طور مثال محتوای داینامیک خروجی داده شده توسط کدهای PHP را به صورت فریم در صفحات HTML نمایش دهیم، به طور مثال فرض کنید فایل PHP با آدرس زیرپیج رنک سایت مورد نظر را محاسبه و به صورت آیکن نمایش می دهد.
http://www.yoursite.com/page_rank.php?url=$url&img=5
واضح است که اگر مقدار متغیر url درج شده در کد بالا را به صورت دستی تنظیم و این آدرس فرضی را در نوار آدرس مرورگر وارد کنیم احتمالا آیکن پیج رنک به نمایش در می آید، اما مشکل ما اجرای این کار به صورت خودکار و در صفحات وب است که امکان درج و اجرای مستقیم دستورات PHP در صفحات HTML وجود ندارد و از طرفی تمام و شاید اغلب کاربران این امکان را ندارند که از دستورات سمت سرور در وبلاگ ها استفاده کنند و محتوای فایل PHP را نمایش دهند، به همین خاطر باید به دنبال یک واسطه بین فایل های داینامیک PHP و صفحات استاتیک HTML باشیم، این واسطه چیزی نیست جزء دستورات زبان جاوا اسکریپت (JavaScript) که به راحتی می توان به کمک آن و تنها با چند خط کدنویسی ساده به هدف مورد نظر رسید و کد نهایی را به شکل نمونه زیر تغییر داد.<script type="text/javascript" src="http://yoursite.com/page_rank.php?url=$url&img=5"></script>
اکنون می توان کد اسکریپتی بالا را در صفحات HTML به راحتی استفاده کرد، این روش جایگزین مناسبی است برای تکنیک های مشابه (مانند استفاده از iframe و...)، اما مراحل انجام این کار.فراخوانی فایل PHP در JavaScript
اولین گام این است که آدرس فایل PHP خود را در قسمت src تگ های جاوا اسکریپت آدرس دهی کنیم، البته اگر تعداد فایل های سمت سرور بیش از یک مورد باشد، فایلی باید در این قسمت تنظیم شود که خروجی را تولید می کند و نیازی به وارد کردن سایر فایل ها درون دستورات جاوا اسکریپت نیست، به مثال زیر توجه کنید.
<script type="text/javascript" src="http://yoursite.com/output.php"></script>
نکته 1: اگر فایل سمت سرور (فایل PHP) نیاز به دریافت پارامترهایی داشته باشد، مانند متد GET در حالت عادی، می توانیم پارامترها را با افزودن علامت ? به انتهای آدرس و استفاده از علامت های & و =، به هر تعداد که لازم است تنظیم کنیم.نکته 2: استفاده از این روش محدود به لینک های داینامیک نیست، درواقع با هر لینکی که فایل سرور به درستی توسط آن فراخوانی شود، خروجی دریافت شده و به نمایش در می آید.
تنظیمات JavaScript در فایل PHP
در گام دوم و در فایل PHP، باید خروجی کدها را مطابق با syntax دستور document.write تنظیم کنیم، همان طور که می دانیم یک دستور ساده document.write در جاوا اسکریپت به صورت زیر است:
<script type="text/javascript">
document.write('چاپ خروجی مورد نظر در مرورگر');
</script>
لذا وقتی این دستور را در کدهای PHP استفاده می کنیم باید به نکات زیر توجه داشته باشیم.- درج موارد مربوط به document.write درون تگ های PHP مجاز نیست و باید خارج از علامت های php?> و ?> باشد.
نمونه اشتباه:
<?php
document.write('echo "ترکیب جاوا اسکریپت و PHP";');
?>
نمونه صحیح:document.write('<?php
echo "ترکیب جاوا اسکریپت و PHP";
?>');
- به جهت رعایت syntax صحیح و مطابق با دستور العمل جاوا اسکریپت، علامت های ' و " در خروجی را با یک بک اسلش (\) ایمن سازی می کنیم، دقت کنید که در برخی سرور ها به جهت روشن بودن قابلیت magic_quotes_gpc (این قابلیت علامت های ' و " را با افزودن یک بک اسلش ایمن سازی می کند)، این کار به صورت خودکار انجام می شود و لذا ابتدا باید این قابلیت را غیر فعال کنید یا بک اسلش های اضافه شده را حذف نمائید تا از درج دو بک اسلش (یک بک اسلش توسط magic_quotes_gpc و یک بک اسلش دیگر توسط توابعی مانند addslashes) اجتناب شود، نمونه راه حل زیر می تواند هر دو مشکل را بر طرف کند.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 در ترکیب با جاوا اسکریپت استفاده شود.
دسته بندی: آموزش کاربردی » JavaScript
برچسب ها: JavaScript - PHP

ساخت افکت رنگی با جاوا اسکریپت (JavaScript)
کنترل و تغییر اندازه فونت صفحه با جاوا اسکریپت
ساخت پنل چند سربرگی (Tabbed Panel) با جاوا اسکریپت و CSS
ساخت دکمه رفتن به بالای صفحه (Scroll to Top) با جاوا اسکریپت
نمایش پیام در حال بارگذاری با جاوا اسکریپت (JavaScript)
دیدگاه


aynaz
۲۱:۱۸ ۱۳۹۵/۱۲/۱۰
سلام خطایابی هم انجام دادم ولی مثلا با این دستور چیزی چاپ نمی شود اررو
انگار که اصلا چیزی نمی فرستد
Notice: Undefined index: status in C:\xampp\htdocs\sarerr\dar2.php on line 19
میدهد.انگار که اصلا چیزی نمی فرستد
بله، ظاهرا هیچ پارامتری به سرور ارسال نمی شود! سعی کنید آموزش های مربوط به AJAX در jQuery را فرا بگیرید، در صورت آشنایی مختصر قبلی، خیلی سخت نیستند، یک نمونه:
https://www.w3schools.com/jquery/ajax_ajax.asp
در صورتی که مشکل همچنان پا بر جا بود، فایل های خود را به صورت ZIP شده به آدرس ایمیل ما (موجود در بخش تماس) ارسال کنید تا بررسی گردند.aynaz
۱۴:۲۱ ۱۳۹۵/۱۲/۱۰
من کدم به این شکل تغییر دادم ولی باز هم مشکلم حل نشد: این کد جاوا
$("#app1").click(function(){
$.ajax({
type: "POST",
url: "dar2.php",
data: {status:"2",approver:$("#user").val() , id : $("#recordid2").val()},
});
$("#tdc1").css("background-color","#0C0");
});
اینم کد php:<?php
include("config/config.php");
if($_POST['status']==2){
$approver=$_POST['approver'];
$status=$_POST['status'];
$id=$_POST['id'];
if($status =="2" )
{
mysql_query("UPDATE cr SET status='2',approver=".$approver." WHERE id=".$id." ;",$con);
echo "UPDATE cr SET status='2',approver=".$approver." WHERE id=".$id." ;";
}}
?>
ممنون میشم مشکل کد بفرمایید. من چند روزه دارم با همین یه تیکه د سر و کله میزنم. یا اگر با روش دیگه ای این اری که من میخام انجام بشه ممنون میشم بفرمایید. $("#tdc1").css("background-color","#0C0");
این دستور جاوایی هم که گذاشتم اجرا میشهکدهای شما به لحاظ Syntax مشکل خاصی ندارند! برای خطایابی می توانید در قسمت کدهای PHP به فرض پارامترها را چاپ کنید و ببینید آیا با درخواست AJAX مقدار مورد نظر ارسال می شود یا خیر، به طور مثال:
echo $_POST['status'];
با این کار باید مقدار 2 در پاسخ چاپ شود، به هر صورت باید این خطایابی ها را انجام دهید تا اشکال کار مشخص شود، خطایابی نیز تنها با اجرای تمام برنامه روی سرور آنلاین (یا مجازی) ممکن است!aynaz
۱۳:۰۲ ۱۳۹۵/۱۲/۱۰
سلام
ببخشید من میخاستم در یه صفحه وقتی روی یه دکمه میزنم با استفاده از جاوا به یه صفحه پی اچ پی برم که کدهای آپدیت دیتابیس که در اون صفحه هست اجرا بشه برا اون مقداری که توی دکمه فرستادم. ولی موفق نمیشم. اگر میشه راهنماییم کنین.
برای مثال این فایل جاوای من هست. ولی کد های داخل فایل dar2.php که مربوط به آپدیت دیتابیس هست اجرا نمیشه. اگر پیشنهادی دارین ممنون میشم کمکم کنین.
ببخشید من میخاستم در یه صفحه وقتی روی یه دکمه میزنم با استفاده از جاوا به یه صفحه پی اچ پی برم که کدهای آپدیت دیتابیس که در اون صفحه هست اجرا بشه برا اون مقداری که توی دکمه فرستادم. ولی موفق نمیشم. اگر میشه راهنماییم کنین.
برای مثال این فایل جاوای من هست. ولی کد های داخل فایل dar2.php که مربوط به آپدیت دیتابیس هست اجرا نمیشه. اگر پیشنهادی دارین ممنون میشم کمکم کنین.
$("#app1").click(function(){
$.get("/dar2.php", {status:"2",approver:$("#user").val(),id:$("#recordid1").val()} ) ;
});
این موارد نیاز به بررسی بیشتر و خطایابی دارند، صرفا با دیدن قسمتی از کدها نمی توان نظر خاصی ارائه کرد، در هرصورت به نظر باید یک درخواست AJAX با استفاده از jQuery ارسال و در سمت سرور با PHP پارامترها را دریافت نمائید، در هر حال بدون خطایابی دقیق نمی توان علت مشکل را حدس زد!
۲۳:۴۷ ۱۳۹۵/۰۴/۰۵
با سلام من طبق آموزش رفتم جلو و اینو نوشتم برای قالب وردپرس ولی عکس ها نمایش داده نشد .
$(function(){
jQuery(document).ready(function() {
$('#home').backstretch([
document.write('<img src="<?php echo esc_url(get_template_directory_uri())?>/../images/home-bg-slideshow1.jpg">'),
document.write('<img src="<?php echo esc_url(get_template_directory_uri())?>/../images/home-bg-slideshow2.jpg">'),
], {duration: 2000, fade: 750});
});
})
با تشکر از راهنمایی تانبه نظر کدها به لحاظ syntax مشکلی ندارند، منتها باید ببینید چه آدرسی در خروجی HTML برای تصاویر چاپ می شود، ظاهرا قسمت زیر باید زائد باشد:
../
mehrdad
۱۲:۱۸ ۱۳۹۵/۰۲/۰۹
سلام خسته نباشین اموزش هاتون خیلی عالین ممنونم
یه سوال : من الان تو یه صفحه 2 تا پست دارم که توی این ها یه اسلاید شو هست . بعد حالا قاطی شده ینی پست اول تصاویر رو نمایش میده ، بعدش قطع میشه ، پست دوم شروع میکنه به نمایش دادن و الی اخر... حالا من میخوام این 2 تا پست همزمان اسلایدرشون فعال باشه. بعد اومدم واسه هر پست یه اسکریپت جدا نوشتم که کار کرد ولی اگر قرار باشه تو یه صفحه مثلا 16 تا پست اینطوری باشه 16 تا اسکریپت دیگه هم میخواد که خیلی ناجوره !! حالا چطوری این مشکلو میشه حلش کرد ؟ راهی وجود داره واسش؟
با تشکر فراوان
یه سوال : من الان تو یه صفحه 2 تا پست دارم که توی این ها یه اسلاید شو هست . بعد حالا قاطی شده ینی پست اول تصاویر رو نمایش میده ، بعدش قطع میشه ، پست دوم شروع میکنه به نمایش دادن و الی اخر... حالا من میخوام این 2 تا پست همزمان اسلایدرشون فعال باشه. بعد اومدم واسه هر پست یه اسکریپت جدا نوشتم که کار کرد ولی اگر قرار باشه تو یه صفحه مثلا 16 تا پست اینطوری باشه 16 تا اسکریپت دیگه هم میخواد که خیلی ناجوره !! حالا چطوری این مشکلو میشه حلش کرد ؟ راهی وجود داره واسش؟
با تشکر فراوان
هرچند سوالتان سربسته است و دقیقا اطلاعی از سورس کدها نداریم، اما معمولا در برنامه نویسی موارد مشابه را می توان با استفاده از تابع و اختصاص آرگیومنت به آن حل کرد، قاعدتا درک این مبحث نیازمند داشتن تجربه قبلی و گذراندن آموزش های مقدماتی است!
شهرام
۰۲:۴۵ ۱۳۹۵/۰۱/۲۶
یک کانال تلگرامی در حال ثبت نام برای آموزش وردپرس و پی اچ پی و جاوا اسکریپت و.... هست
https://telegram.me/wordpres_php
8 گپ
۱۱:۱۵ ۱۳۹۵/۰۱/۱۰
مرسی از پاسختون
و ممنون از اینکه بدون چشم داشتی دانشتون رو در اختیار بقیه میزارید امیدوارنم همیشه موفق و سر بلند باشید
و ممنون از اینکه بدون چشم داشتی دانشتون رو در اختیار بقیه میزارید امیدوارنم همیشه موفق و سر بلند باشید
۱۸:۱۱ ۱۳۹۴/۱۲/۰۶
سلام خسته نباشید
یه سوال مدتهاست تو ذهنمه ممنون میشم پاسخ بدید
و اون اینه که توی ترکیب جاوا و پی اچ پی هیچ راهی وجود نداره که بشه مستقیما جاوا اسکریپت رو داخل پی اچ پی گذاشت ؟ نیت از این کار قابل خونده نشدن کد جاوا هست
یعنی قابل اجرا باشه اما قابل خوندن از ادرس مرورگر بصورت مستقیم نباشه یعنی نمیشه تگ پی اچ پی رو باز کرد و کد رو کار گذاشت و به عنوان پی اچ پی تگ رو بست که محتویات داخلش رو اجرا کنه البته بدون اینکلود یا اگه نمیشه ایا کدی هست که بتونه بدرد چیزی که مد نظرمه بخوره یا نه البته به زبان ساده یا لاقل دستوری توی فایل htaccess که بهش بگه وقتی یک فایل با فرمت مشخص شده توی مرورگر طرف باز میشه یه نوشته بهش نشون بده که مثلا دسترسی ممنوع میباشد اما در عین حال موقعی که فراخونی میشه اجرا بشه
ممنون میشم اگه راهنماییم کنید مرسی و خسته هم نباشید
یه سوال مدتهاست تو ذهنمه ممنون میشم پاسخ بدید
و اون اینه که توی ترکیب جاوا و پی اچ پی هیچ راهی وجود نداره که بشه مستقیما جاوا اسکریپت رو داخل پی اچ پی گذاشت ؟ نیت از این کار قابل خونده نشدن کد جاوا هست
یعنی قابل اجرا باشه اما قابل خوندن از ادرس مرورگر بصورت مستقیم نباشه یعنی نمیشه تگ پی اچ پی رو باز کرد و کد رو کار گذاشت و به عنوان پی اچ پی تگ رو بست که محتویات داخلش رو اجرا کنه البته بدون اینکلود یا اگه نمیشه ایا کدی هست که بتونه بدرد چیزی که مد نظرمه بخوره یا نه البته به زبان ساده یا لاقل دستوری توی فایل htaccess که بهش بگه وقتی یک فایل با فرمت مشخص شده توی مرورگر طرف باز میشه یه نوشته بهش نشون بده که مثلا دسترسی ممنوع میباشد اما در عین حال موقعی که فراخونی میشه اجرا بشه
ممنون میشم اگه راهنماییم کنید مرسی و خسته هم نباشید
تا آنجا که اطلاع داریم متاسفانه چنین کاری شدنی نیست، دستورات جاوا اسکریپت مربوط به سمت کاربر است و باید در مرورگر اجرا شوند (نه در سرور)، لذا الزاما باید در سیستم کاربر بارگذاری شوند، البته می توانید کدها را فشرده کنید تا به راحتی توسط دیگران قابل برداشت و استفاده نباشند!، بدین منظور روش ها و برنامه های زیادی ارائه شده که با کمی جستجو در دسترس هستند، به طور مثال:
http://refresh-sf.com
امین
۱۶:۳۰ ۱۳۹۴/۰۹/۱۷
سلام استاد من خیلی از مشکلاتم با وب شما حل شده.
من میخوام پرچم کشورها رو بر اساس آی پی هر فرد بذارم آیا شما کلاسشو دارید بذارید برای دانلود؟
تو نت هست خیلی گشتم اما همشون متکی به یک آدرس بودن که اگه اون آدرس از کار بیفته دیگه بیفایده است.
من میخوام پرچم کشورها رو بر اساس آی پی هر فرد بذارم آیا شما کلاسشو دارید بذارید برای دانلود؟
تو نت هست خیلی گشتم اما همشون متکی به یک آدرس بودن که اگه اون آدرس از کار بیفته دیگه بیفایده است.
سلام
متاسفانه کلاس آماده ای برای این کار در اختیار نداریم، کدها و روش های زیادی برای این منظور در وب وجود دارد، دو نمونه آدرس زیر، آموزش نمایش اطلاعات مکانی کاربر بدون دیتابیس آفلاین و با استفاده از API سایت های دیگر است:
آدرس زیر نیز یک بانک آفلاین IP است که هر چند ماه یکبار به روز می شود و در برنامه ها به راحتی قابل استفاده است (برای داشتن آخرین تغییرات، باید بانک را به صورت دستی به روز کنید):
متاسفانه کلاس آماده ای برای این کار در اختیار نداریم، کدها و روش های زیادی برای این منظور در وب وجود دارد، دو نمونه آدرس زیر، آموزش نمایش اطلاعات مکانی کاربر بدون دیتابیس آفلاین و با استفاده از API سایت های دیگر است:
http://stackoverflow.com/questions/12553160/getting-visitors-country-from-their-ip
http://roshanbh.com.np/2008/07/getting-country-city-name-from-ip-address-in-php.html
سایت های استفاده شده در این کدها جزء سایت های معتبر و مرجع هستند و بعید است به راحتی از کار بیفتند!آدرس زیر نیز یک بانک آفلاین IP است که هر چند ماه یکبار به روز می شود و در برنامه ها به راحتی قابل استفاده است (برای داشتن آخرین تغییرات، باید بانک را به صورت دستی به روز کنید):
http://www.phptutorial.info/iptocountry/the_script.html
امین
۱۲:۵۱ ۱۳۹۴/۰۹/۱۶
سلام استاد
با document.write نمیشه به متن داخلش یک کلاس رو نسبت داد؟ من هر کار میکنم نمیشه. میخوام یک دایو چاپ کنم که پس زمینه داشته باشه. اما کل صفحه پس زمینه میگیره
تگ من اینه:
با document.write نمیشه به متن داخلش یک کلاس رو نسبت داد؟ من هر کار میکنم نمیشه. میخوام یک دایو چاپ کنم که پس زمینه داشته باشه. اما کل صفحه پس زمینه میگیره
تگ من اینه:
newWin.document.write('<html><head><title>my div</title></head>');
newWin.document.write('<body onload="window.print()"> ');
newWin.document.write('<div style=" min-height:100%; height:auto; margin:0px auto -50px auto;">');
newWin.document.write(divToPrint.innerHTML+'</div>');
newWin.document.write('<div style="height:50px; background-color: silver;">فوتر اینجا قرار میگیرد</div>');
newWin.document.write('</body></html>');
سلام
دستور document.write تنها یک ابزار برای چاپ داینامیک خروجی است و لذا هر نوع خروجی HTML می توان با آن چاپ کرد، نمونه زیر را در یک فایل html تست کنید:
دستور document.write تنها یک ابزار برای چاپ داینامیک خروجی است و لذا هر نوع خروجی HTML می توان با آن چاپ کرد، نمونه زیر را در یک فایل html تست کنید:
<script type="text/javascript">
document.write('<div style="height:500px; width:500px; background-color: silver;">فوتر اینجا قرار میگیرد</div>');
</script>
لذا اگر پس زمینه به کل صفحه تعلق می گیرد، ایراد باید از موارد دیگری (به فرض جا افتادن و نبستن یک تگ و...) باشد! افزونه هایی مانند View Source Chart در مرورگر فایرفاکس را نصب کنید تا دیدن سورس اصلی صفحه و خطایابی ممکن باشد.محمد
۰۰:۵۲ ۱۳۹۴/۰۹/۰۱
سلام استاد خسته نباشید
ببخشید من الان در این جا در این ارایه بخوام ارایه رو پر کنم
چه جوری امکان داره
چجوری میتونم در اینجا از php استفاده کنم
ممنون
ببخشید من الان در این جا در این ارایه بخوام ارایه رو پر کنم
چه جوری امکان داره
var chartData = [{"date": "2012-03-01","price": 20}]
میخواهم در واقع در این نمودار تاریخ و قیمت رو پر کنم چجوری میتونم در اینجا از php استفاده کنم
ممنون
سلام
کافی است فایل خروجی دهنده شما با فرمت php باشد، در این صورت می توان این خط را به صورت نمونه زیر نوشت تا امکان چاپ متغیرهای سمت سرور فراهم باشد:
کافی است فایل خروجی دهنده شما با فرمت php باشد، در این صورت می توان این خط را به صورت نمونه زیر نوشت تا امکان چاپ متغیرهای سمت سرور فراهم باشد:
var chartData = [{"date": "<?php echo $your_date;?>","<?php echo $your_price;?>": 20}]
نکته: قاعدتا متغیرها ابتدا باید تعریف و مقدار معتبری داشته باشند!ali
۰۲:۳۵ ۱۳۹۴/۰۸/۱۱
سلام
خدا قوت
یه سوال دارم
به این کد نگاه کنید
خدا قوت
یه سوال دارم
به این کد نگاه کنید
<!-- www.20i.ir --->
<script type="text/javascript" src="http://www.20i.ir/tools/time/c.php?t=130px&sz=12px&c=333333&colort=333333&bg=ffffff"></script><div style="display:none"><h1><a href="http://www.20i.ir">نمايش ساعت</a></h1></div>
<!-- www.20i.ir --->
این کد ساعت با جاوا هست این نوع کدها را سایت های ابزار وبلاگ ارائه می دهند دلیلش چیه که کدهای js به صورت php هستند در حالی که احتیاج به این کار نیستسلام
علت این است که معمولا در اینگونه ابزارها یک سری از پارامترهای لازم به سلیقه کاربر باید تنظیم شوند، به طور مثال در این نمونه کد قسمت زیر (از طریق متد GET) به کد PHP داده می شود تا در خروجی نهایی به صورت داینامیک در دستورات استفاده شود:
علت این است که معمولا در اینگونه ابزارها یک سری از پارامترهای لازم به سلیقه کاربر باید تنظیم شوند، به طور مثال در این نمونه کد قسمت زیر (از طریق متد GET) به کد PHP داده می شود تا در خروجی نهایی به صورت داینامیک در دستورات استفاده شود:
t=130px&sz=12px&c=333333&colort=333333&bg=ffffff
به این ترتیب پیش از خروجی دستورات جاوا اسکریپت می توان موارد را بر اساس پارامترهای ارسالی تغییر داد، به فرض:document.write('<?php
$t = $_GET['t'];
echo '<div style="width:'.$t.'">test!</div>';
?>');
هادی
۱۸:۲۴ ۱۳۹۴/۰۷/۰۱
سلام آقای ادمین وقت بخیر
باز یه سوالی ازتون داشتم
از داخل یک قالب html میشه با DOMDocument یه تگ (بر اساس کلاس یا آی دی یا...) جستجو کرد بطوریکه بتونه نام تمام والدهاش رو به صورت زیر برگردونه؟
باز یه سوالی ازتون داشتم
از داخل یک قالب html میشه با DOMDocument یه تگ (بر اساس کلاس یا آی دی یا...) جستجو کرد بطوریکه بتونه نام تمام والدهاش رو به صورت زیر برگردونه؟
/html/body/div/div/div/div[2]/div/p
چون منبع فارسی ای پیدا نکردم مجبور شدم باز مزاحم شما بشمسلام
این موارد را معمولا نمی توانید به راحتی در وب پیدا کنید چون باید کمی کدنویسی بلد باشید و از تجمیع اطلاعات موجود، کد مورد نیاز خودتان را بنویسید، در هر صورت به نظر روش نمونه زیر مفید خواهد بود:
این موارد را معمولا نمی توانید به راحتی در وب پیدا کنید چون باید کمی کدنویسی بلد باشید و از تجمیع اطلاعات موجود، کد مورد نیاز خودتان را بنویسید، در هر صورت به نظر روش نمونه زیر مفید خواهد بود:
<?php
//$html = file_get_contents('Your_URL');
$html = '<html><body><div><div><p><strong id="test"></strong></p></div></div></body></html>';
$id = 'test';
$loop = 1;
$max_loop = 1000;
@$array = array();
$dom = new domDocument;
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$elm = $dom->getElementById($id);
$parent = $elm->parentNode;
while($parent != FALSE && $loop < $max_loop){
$tag_name = $parent->nodeName;
$array[$loop - 1] = $tag_name;
@$parent = $parent->parentNode;
$loop++;
}
krsort($array);
foreach($array as $key => $value){
echo $value.'<br>';
}
?>
نتیجه:#document
html
body
div
div
p
mrm
۱۶:۰۰ ۱۳۹۴/۰۵/۱۰
سلام
ممنون از اینکه اینقدر سریع رسیدگی کردید
متوجه شدم
ممنون
ممنون از اینکه اینقدر سریع رسیدگی کردید
متوجه شدم
ممنون
mrm
۱۹:۵۹ ۱۳۹۴/۰۵/۰۸
سلام
خدا قوت
می خواستم بدونم که آیا به صورت برعکس هم میشه این کار رو انجام داد . یعنی دستورهای جاوا اسکریپت رو داخل فایل پی اچ پی نوشت من یک فایل جاوا دارم که می خوام در فایل پی اچ پی بنویسم
اگه میشه راهنمایی کنید
ممنون
کد جاواش هم اینه
خدا قوت
می خواستم بدونم که آیا به صورت برعکس هم میشه این کار رو انجام داد . یعنی دستورهای جاوا اسکریپت رو داخل فایل پی اچ پی نوشت من یک فایل جاوا دارم که می خوام در فایل پی اچ پی بنویسم
اگه میشه راهنمایی کنید
ممنون
کد جاواش هم اینه
حذف شد
سلام
اگر هدف نهایی از این کار را می گفتید، راهنمایی ساده تر می شد، به هر صورت باید توجه کنید که جاوا اسکریپت و PHP هر کدام کاربرد و خصوصیت خودشان را دارند، PHP در سرور اجرا می شود اما جاوا اسکریپت در مرورگر، لذا اگر هم کدهای جاوا اسکریپت را با PHP خروجی بگیرید، یا بین دستورات PHP بنویسید، نهایتا در مرورگر چاپ و سپس اجرا می شود نه در سرور، در سرور فقط کدهای PHP قابلیت اجرا دارند که خود در نهایت یک خروجی به صورت JavaScript + HTML برای مرورگر تهیه می کنند.
اگر هدف نهایی از این کار را می گفتید، راهنمایی ساده تر می شد، به هر صورت باید توجه کنید که جاوا اسکریپت و PHP هر کدام کاربرد و خصوصیت خودشان را دارند، PHP در سرور اجرا می شود اما جاوا اسکریپت در مرورگر، لذا اگر هم کدهای جاوا اسکریپت را با PHP خروجی بگیرید، یا بین دستورات PHP بنویسید، نهایتا در مرورگر چاپ و سپس اجرا می شود نه در سرور، در سرور فقط کدهای PHP قابلیت اجرا دارند که خود در نهایت یک خروجی به صورت JavaScript + HTML برای مرورگر تهیه می کنند.
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.