نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • بررسی ها
  • درج php در کد پیکربندی وب جاوا اسکریپت. متغیرهای PHP در جاوا اسکریپت

درج php در کد پیکربندی وب جاوا اسکریپت. متغیرهای PHP در جاوا اسکریپت

چرا سوال انتقال یک متغیر از زبان به زبان یک سوال مبتدی است؟ زیرا انجام آن غیرممکن است! زبان های برنامه نویسی هر کدام به طور مستقل کار می کنند. و انتقال مستقیم بین آنها غیرممکن است. حالا دلیلش را توضیح می دهم.

واقعیت این است که PHP و جاوا اسکریپت فقط به صورت مشروط به هم مرتبط هستند. PHP روی سرور و جاوا اسکریپت در مرورگر اجرا می شود.

بگذارید الگوریتم اینترنت را به شما یادآوری کنم. یعنی چه اتفاقی می افتد که شما یک آدرس درخواست می کنید ...

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

    چگونه یک متغیر را از PHP به جاوا اسکریپت منتقل کنیم؟

    در زمان اجرا مورد نیاز است اسکریپت PHPفقط چنین متنی را ایجاد کنید تا بتوان آن را در مرورگر اجرا کرد. مثلا.

    انتقال ناهمزمان یک متغیر از جاوا اسکریپت به PHP

    یعنی با استفاده از آژاکس. در اصل، همان کاری که در مورد قبلی انجام شد انجام می شود، اما صفحه مرورگر دوباره بارگذاری نمی شود. ساده ترین راه برای نشان دادن این موضوع استفاده از .

    var message = "سلام سرور!"; $..php، (پیام: پیام)، تابع(داده) ( هشدار("سرور پاسخ داد: "+داده)؛ ));

    همانطور که می بینید، همه چیز حتی ساده تر است. نیازی به استفاده از تابع encodeURIcomponent نیست؛ جی کوئری این کار را برای ما انجام می دهد. ما تابعی را توصیف می کنیم که پاسخ سرور را می گیرد و به متغیر داده اضافه می کند. اگر index.php به سادگی مقدار متغیر $_GET را برگرداند، یک هشدار با متن "سرور پاسخ داد: سلام سرور!"

    پخش اشیاء پیچیدهاز php به جاوا اسکریپت

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

    اینجاست که ممکن است همه چیز شروع به گیج شدن کند. اما جای نگرانی نیست کافی است سکانس را به خاطر بسپارید. ابتدا PHP اجرا می شود و سپس جاوا اسکریپت. پس از اجرای php دریافت خواهید کرد:

    var obj=("test":"123","key":"value"); هشدار(obj.test);

    که پس از اجرا، یک هشدار با متن "123" نمایش داده می شود.

    جمع

    باید به خاطر داشته باشید که php JS تولید می کند، بنابراین انتقال داده از آن بسیار ساده است. شما باید JS را مانند html تولید کنید. تابع نحو جاوا اسکریپت.

    یک درخواست اضافی همیشه برای انتقال داده ها از JS به PHP استفاده می شود. چگونگی انجام آن، موضوع دهم است. به عنوان مثال، یک فرم می تواند تولید و ارسال شود. یا یک iframe باز کنید. اما نکته همچنان باقی است. با درک این ماهیت، می توانید به سادگی هر داده ای را از مرورگر به سرور منتقل کنید و به عقب برگردید.

    زیباست سوال متداول، که در انجمن ها مطرح می شود. در اصل، هر کسی می تواند آن را به تنهایی کشف کند. اما اگر سوالی دارید، ما سعی می کنیم آن را در اینجا مرتب کنیم.

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

    اگر مرورگر فایل‌ها را از دیسک رایانه محلی بگیرد، هر کسی می‌تواند این فایل را تغییر دهد. به عنوان مثال، می توانید برنامه ای در C یا Pascal ایجاد کنید که در آن می نویسد فایل html 1000 برابر کلمه "سلام". و سپس مرورگر فایل را می گیرد و در صفحه کاربر نمایش می دهد. توجه داشته باشید که مرورگر به این موضوع اشاره نمی کند که فایل از کجا منشا گرفته است. این به او مربوط نیست، او آن را دریافت می کند html نهاییفایل.

    اگر فایلی از اینترنت ظاهر شود، مرورگر اغلب هیچ چیزی در مورد فایل نمی داند: نه تاریخ، نه اندازه (تا زمانی که به طور کامل دانلود شود)، و نه نام واقعی. اگر این فایلروی سرور نتیجه کار برخی از برنامه ها خواهد بود ، سپس این شرایط نیز به هیچ وجه بر مرورگر تأثیر نمی گذارد (دوباره اهمیتی نخواهد داد). زبان های اسکریپت بر اساس این ویژگی هستند. اگر یک فایل php را در دایرکتوری وب روی سرور قرار دهید، مرورگر خود فایل را دریافت نمی کند، بلکه فقط نتیجه PHP است که فایل php را اجرا کرده است.
    جاوا اسکریپت (JS) چیست؟ این همان html است. به عبارت دیگر، این مجموعه خاصی از تگ های اضافی است و نه چیزی بیشتر. اگر در هر برنامه PHP در حال اجرا، echo "Enter login" را با echo "document.write("Enter login");" جایگزین کنید. ، آن این عملیاتبه هیچ وجه بر برنامه PHP تاثیر نخواهد گذاشت. در ابتدا، echo را در یک فایل ذخیره می کنید. زمانی که کاربر به صفحه ای دسترسی پیدا می کند این دستور PHP اجرا می شود که نتیجه کار را به مرورگر می دهد. آن ها خطی که در پژواک بود . اگر کد JS در خط وجود داشته باشد، معلوم می شود که مرورگر آن را دریافت می کند. پس JS چیست؟ همانطور که متوجه شدیم، این مجموعه خاصی از اضافی به خالص است کد htmlمتنی که در یک فایل html به مرورگر می رسد و در آنجا اجرا می شود. این چیزی است که هیچ کس نمی خواهد بفهمد - PHP روی سرور اجرا می شود و JS فقط در مرورگر اجرا می شود. در مرورگر ما چیست؟ کد HTML. و مرورگر اهمیتی نمی دهد که از کجا آمده است. مرورگر فایل html را می گیرد و روی صفحه نمایش می دهد و تگ ها را اجرا می کند و همچنین کد JS را در طول مسیر اجرا می کند.

    برای تبدیل یک متغیر از PHP به JS به چه چیزی نیاز دارید؟ اول از همه، درک کنید که ابتدا PHP اجرا می شود، که یک صفحه HTML ایجاد می کند (و همچنین می تواند کد JS را در طول مسیر ایجاد کند). تصور کنید این فایل را داشتیم:

    و اکنون این فرمول PHP را محاسبه می کند و سپس نتیجه را در جای مناسب در صفحه html درج می کند. و این واقعیت که نتیجه اعلام یک متغیر برنامه JS است صرفاً یک اثر جانبی مثبت است. PHP اهمیتی نمی دهد که برنامه چه کاری انجام می دهد یا چرا مجموع 2 و 3 را محاسبه کرده است.


    »

    در اکثر برنامه های کاربردی وب، فایل های جاوا اسکریپت استاتیک 100% برای توسعه دهنده مناسب است. با این حال، گاهی اوقات این اتفاق می افتد بهترین راه حل PHP را وصل کنید و محتویات فایل JS را در لحظه تولید کنید (به عنوان مثال، دریافت کنید قیمت های فعلیبرای محصولات از پایگاه داده و انتقال آنها به یک برنامه جاوا اسکریپت برای تایید فرم سفارش). چطور این کار را بکنیم؟

    روش اول: ساده البته، ساده ترین راه حل این است که کد PHP را در بخشی از قالب HTML خود قرار دهید، زیرا به احتمال زیاد دارای پسوند php. است.

    var jsVar = "";
    حتی اگر پسوند قالب .htm یا .html باشد، در اکثر موارد وب سرور به گونه ای پیکربندی شده است که گنجاندن کد PHP را درک کند (اگر نه، پس در انتهای یادداشت یک مثال ساده از نحوه حل این مشکل وجود دارد. ). اما تا آنجا که به زیبایی مربوط می شود، این گزینه زیباترین نیست. خوب است مگس و کتلت را جداگانه نگهداری کنید.

    روش دوم: زیبا راه حل دوم این است که وب سرور را به گونه ای پیکربندی کنید که فایل های جاوا اسکریپت را برای اجرای کد PHP تجزیه کند. ایجاد در کافی است پوشه مورد نظرفایل .htaccess یا یک فایل موجود را باز کنید و خطوط زیر را به آن اضافه کنید:

    برنامه AddType/x-httpd-php .js AddHandler x-httpd-php5 .js

    طرفدار و مخالف: این چه چیزی به ما می دهد؟ حرفه ای
    • می‌توانید کد PHP را در فایل‌هایی با پسوند js قرار دهید و زمانی که کلاینت به فایل جاوا اسکریپت دسترسی پیدا کرد، به‌طور خودکار اجرا می‌شود.
    • شما می توانید چنین اسکریپت های ترکیبی را در یک پوشه جداگانه نگه دارید - فقط فایل .htaccess که در بالا توضیح داده شد را در این پوشه قرار دهید.
    • اگر می‌خواهید همه فایل‌های جاوا اسکریپت را در یک مکان نگه دارید (ایستا و ترکیبی)، می‌توانید یک کنترل کننده فایل با پسوند دلخواه ثبت کنید، به عنوان مثال، js2. - فقط کمی متن.htaccess را تغییر دهید.
    • شما می توانید صفحات استاتیک HTML، قالب ها و فایل های جاوا اسکریپت را جدا کنید.
    برعکس
    • از نظر تئوری، این باعث حداقل بار اضافی روی سرور می شود، اما با توجه به تغییرات با پوشه های جداگانهیا پسوند فایل، مزایا به نظر برتر است.
    اضافه کردن برای اینکه وب سرور فایل های .htm و .html را تجزیه کند و کد PHP موجود در آنها را اجرا کند، باید خطوط زیر را به htaccess. اضافه کنید:

    برنامه AddType/x-httpd-php .htm .html AddHandler x-httpd-php5 .htm .html برنامه SetHandler/x-httpd-php
    نظرات، اضافات و تبادل تجربه پذیرفته می شود.

    نتیجه گیری بسیار عجیب است که یک یادداشت کوچک که در واقع فقط یک قطعه برای پیاده سازی سریع یک مورد خاص ارائه می دهد مشکل عملیباعث چنین بحث داغی شد که بیشتر شبیه تلاش برای نشان دادن یک نظریه بود. جامعه معروف حبره در در این موردفداکارانه آن ایده هایی را که اصولاً در یادداشت به آنها اشاره نشده بود، لینچ کرد. اگرچه ما باید ادای احترام کنیم - هنوز چند فکر سالم وجود دارد. و علاوه بر این، "هیچ تجملی غیر از تجمل ارتباطات انسانی" وجود ندارد (به گفته اگزوپری)))).

    هنگامی که ماژول خود را توسعه می دهید، گاهی اوقات به طرح بندی (HTML و CSS) و اسکریپت های اضافی متوسل می شوید.

    همه اینها را می توان به طور جداگانه متصل کرد - برخی در بدنه صفحه، برخی در داخل فایل های جداگانه. اما برخی از اضافات بهتر است مستقیماً در خود فایل PHP درج شوند.

    امروز من دو گزینه را نشان خواهم داد که چگونه می توانید HTML، CSS یا جاوا اسکریپت را در کد PHP وارد کنید.

    اولین گزینه برای درج عناصر در کد PHP

    من فکر می کنم که اگر حتی کمی با PHP آشنایی داشته باشید، می دانید "echo" چیست (تگی که با آن می توانید پیامی را روی صفحه نمایش دهید).

    با استفاده از آن می توانید یکی از کدهای فهرست شده قبلی را نمایش دهید. مثال:

    در اینجا باید به چه نکاتی توجه کرد؟ نقل قول ها. اگر از گیومه های بیرونی فرم " " استفاده می کنید، نقل قول های داخلی عناصر باید " " باشد و بالعکس، در غیر این صورت با خطا مواجه خواهید شد. اگر اساساً می‌خواهید از نقل‌قول‌های بیرونی و درونی یکسان استفاده کنید، یک علامت فرار در درونی‌ها قرار دهید:

    در این مورد، همه چیز به درستی کار خواهد کرد.

    گزینه دوم برای درج عناصر در کد PHP

    من این گزینه را خیلی بهتر از اولی دوست دارم. در اینجا ما همچنین از "echo" مانند در استفاده خواهیم کرد نسخه پیشین، اما بیایید یک عنصر "HTML" دیگر اضافه کنیم:

    در اینجا می توانید هر عنصری را وارد کنید، چه کد HTML یا جاوا اسکریپت. نقل قول ها در اینجا نقشی ندارند (شما می توانید هر کدام را وارد کنید)، و در صورت تمایل می توانید متغیرهایی را برای خروجی پیاده سازی کنید:

    خیلی راه راحتبرای تحقق ایده های خود

    بهترین مقالات در این زمینه