النتائج 1 إلى 8 من 8

الموضوع: كيف تجعل من PHP لغة ديناميكية بشكل بسيط جداً بإستخدام JS

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065

    كيف تجعل من PHP لغة ديناميكية بشكل بسيط جداً بإستخدام JS



    السلام عليكم ورحمة الله وبركاته


    أقدم لكم اليوم أولى دروسى المتقدمه فى لغة PHP و هو بعنوان كيف تجعل من لغة PHP لغة ديناميكية
    للأسف الأكواد المضافة فى الموضوع يتم إضافة أكواد الحماية من السبام لمشاهدة الموضوع بأكواد صحيح هـــنا


    إن لغة PHP هى لغة من نوع server-side scripting language أى أنه بمجرد معالجة الصفحة (rendering) لا دخل لل PHP فى محتواها

    إن لغة JavaScript هى لغة من نوع client-side language و لديها القدرة على التفاعل مع المستخدم و تنفيذ الدوال بدون طلب إعادة تحميل الصفحة للمعالجه و ذلك بإستخدام ال (event handlers) الخاصة بها .. حيث تتجاوب اللغة مع ضغطات الماوس .. حركات القوائم .. ضغطات الكيبورد .. و غيرها من ال events .


    و من خلال دمج هاتين اللغتين نحصل على صفحات ديناميكية تمكنك من أن تتمتع بخواص كل منهما معاً . حيث يمكنك مثلاً الإستعلام عن إسم مستخدم يريد تسجيل عضوية فى موقعك بمجرد إدخاله للإسم فى الخانة المخصصة .. و إظهار النتائج فوراً (in real time)

    وتتم معظم الحوارات بين ال PHP وال javaScript على مرحلتين:

    1- بأن دالة ال PHP تطلب البيانات (برمجياً >> تستقبلها) ثم تعالجها >> ثم ترسل الحالة إلى دالة ال JS
    2- دالة ال JS تستقبل الناتج من دالة ال PHP و تغير محتوى الصفحة على حسب نوع البيانات المرسله لها (فهى كما قلنا قادرة على ذلك)



    نأتى لنقطة هامة جداً و هى نوعية الملف الذى يحتوى على أكواد PHP و الآخر الذى يحتوى على أكواد JS من وجة نظر المتصفح (browser)

    إن متصفح الإنترنت يتعامل مع نواتج صفحات بلغة PHP على أنها صفحات text/html و ذلك لأنه عنده إستدعاء صفحات PHP على المتصفح فإنه يحصل على النسخه ال (Rendered) منها و التى لا سلطة لل PHP عليها.

    بينما عند التعامل مع ال JS فإنه يعلم أن هذه الصفحات لها سلطه عليه و يمكنها ان تغير من محتواه و لذلك يتم الإعلان عنها انها صفحات text/javascript


    ولكى يكون هناك تخاطب بين اللغتين فإنه سيتم إستخدام ال PHP فى تغيير قيم المتغيرات الموجوده بداخل كود JS و على أساسها يتصرف ال JS


    1- مرحلة توليد صفحة JS عن طريق ال PHP :

    نستخدم دالة الهيدر فى أعلى صفحة PHP و الهدف هو إعلان أن ناتج المعالجة (rendered output) سيحتوى على JS

    وذلك كالتالى :
    كود PHP:
    header'(anti-spam-content-type:) text/javascript' ); 


    2- مرحلة طلب التدخل من ملف ال JS المولَد لتغيير بيانات الصفحة.

    و هذه المرحله تنفيذياً هى الأولى .. و برمجياً هى الثانية

    وفي هذه المرحلة نقوم بعمل call back لمولِد ال JS ليقوم بتوليد ال JS و يتدخل و يغير من بيانات الصفحة على حسب القيم التى تم توليدها فيه





    كمثال بسيط جداً :

    سنقوم بعمل ملف يطلب من ملف آخر تعديل قيمة نص موجود فيه بين تاج SPAN بالوقت الحالى :

    1- الصفحة الأولى برمجياً هى صفحة المولد الذى سيولد كود JS يحتوى على :

    أ - متغير PHP بقيمة التوقيت الحالى
    ب - كود JS لتعديل قيمة Object ما فى الصفحة التى يتم طلبه فيها

    سمى هذه الصفحة js_jenerator.php

    كود PHP:
    <?php
                header
    '(anti-spam-content-type:) text/javascript' );         

                
    $time                date'g:i:s a' );           

    ?>
    dynamic_span_obj          = document.getElementById( 'dynamic_span' );
    dynamic_span_obj.innerHTML     = '<?php echo $time ?>';


    2- الصفحة الثانية برمجياً هى صفحة تستدعى هذا الملف الذى إمتداده PHP و يولد JS fr بقيم معينه و يتحكم في محتواها

    سمها كما تشاء و لنفرض caller.html

    كود HTML:
    <HTML>
          <head>
                <title>PHP-JS by Khashabawy</title>
    
                <SCRIPT type="text/javascript">    
                      function attach_file( p_script_url ) {
                            script = document.createElement( 'script' );
                            script.src = p_script_url;
                            document.getElementsByTagName( 'head' )[0].appendChild( script );
                      }
                </SCRIPT>
    
          </head>    
    
          <body>
    
                <a href="javascript:attach_file( 'js_generator.php' )">What time is it?</a>
                <br/><br/>
                <span id="dynamic_span" />
          </body>
    </HTML>
    مرفق ملفات المثال


    هذا الدمج البسيط يوضح فكرة بسيطه عن التعاون بين JS و PHP من أجل محتوى أكثر ديناميكية للمستخدم


    تخيل أنك ترسل للصفحة js_generator.php متغير GET أو POST تقوم هى بإستقباله و عمل إستعلام فى قاعدة البيانات و الرد عليك فى نفس الوقت




    مع فائق الإحترام و التقدير

    أخوكم عبدالله خشبة





    الملفات المرفقة الملفات المرفقة
    التعديل الأخير تم بواسطة khashabawy ; 25-09-2010 الساعة 12:38 AM


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    محاولة جميلة - مع اني افضل استعمال ال jquery او الجافاسكربت العادية في داخل مواقعنا :
    كود PHP:

    $("#button1").click(function(){
    $("#div_date").html("<?php echo date(); ?>");
    });
    في المواقع التي تعتمد على ال api ، هناك طريقة جميلة ايضًا(بدلا من استعمال ال json)
    تضع متغير في عنوان الموقع اسمه callback وفيه اسم دالة جافاسكربت

    نفرض انك تريد تحويل من سنتمتر إلى متر(وحدات قياس)
    تدخل الرابط التالي:
    http://site.com/api.php?convert=cmto...ack=con_result
    سوف يرجع هذا الرابط التالي:
    كود PHP:
    con_result("1.12"); 
    يعني سوف تستدعي دالة وتدخل لها نتيجة التحويل، لكن من عرّف دالة con_result اصلا؟؟

    انت!!
    سوف تعرف الدالة في الكود بالشكل التالي مثلا ً
    كود PHP:
    function con_result(result){
    document.write("convertion result is : "+result);

    وطبعًا عندما تعمل :
    كود PHP:
    <script src=http://site.com/api.php?convert=cmtom&x=112&callback=con_result></script> 
    سوف يتم استدعاء الدالة التي كتبتها انت ولكن بقيمة التحويل ، وهذه القيمة تم عملها بالموقع الذي يقدم الخدمة






  3. #3
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    وهذه فكرة الكود الثاني للتجريب

    لكن لا تنسوا تغيير الرابط التالي في usage.html
    كود PHP:
    http://localhost/api.php?convert=cmtom&x=112&callback=convert_me 






    التعديل الأخير تم بواسطة ahmad sadiq ; 12-05-2011 الساعة 02:17 AM

  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Sep 2007
    المشاركات
    2,065


    شكراً على إضافتك يا أحمد






  5. #5
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    47


    بسم الله الرحمن الرحيم ،،،، ،،،، السلام عليكم ورحمة الله وبركاته الأخ الــ ع ــزيز khashabawy والأخ العزيز أ ـح ـمد ،،، لكم كل الشكر والتقدير على ما تقدمونه ،،، الف شكر لكم وجزاكم الله خير الجزاء ،،، بصراحه موضوع رائع وفي قمة الروعه واضافات الاستاذ احمد اضافات جميله يستحق عليها الشكر ،،، والشكر موصول لكاتب الموضوع ،،، دمتم بعافية...~






    __________________
    soalasmari [at] gmail[dot] com
    سوالف سوفت
    ... نحو سوالف افضل

  6. #6
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2006
    المشاركات
    602


    شكرا على الشرح الرائع اخى الكريم






  7. #7
    عضو جديد
    تاريخ التسجيل
    Apr 2010
    المشاركات
    10


    اعتقد ان الشرح معقد نوعا ما


    يعني لو استخدمنا دوال الجيكويري

    مثلا لو عندنا صفحة php فيها كود

    echo "هلا بيكم";

    و عنا صفحة ثانية html

    فيها دالة جافا

    function load()
    {
    $("#div").load("test.php");
    }


    و يوجد بالصفحة ايضا وسم معرف باسم div



    <div id="div"></div>

    و رابط لتنفيذ الدالة

    <a href="javascript:load();">اضغط هنا</a>


    الان مجرد الضغط على الرابط راح تعرض صفحة php

    في الديف المحدد

    اسهل و افضل

    و يوجد دوال اخرى

    ajax , post , get

    و لها تطبيقات متقدمة

    ممكن تدخل على موقع جيكويري و تشوف امثلة و شروحات

    شكرا





    __________________
    -------------------
    www.mo-jo.info
    ------------------

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    450


    اعتقد ان الشرح معقد نوعا ما


    يعني لو استخدمنا دوال الجيكويري

    مثلا لو عندنا صفحة php فيها كود

    echo "هلا بيكم";

    و عنا صفحة ثانية html

    فيها دالة جافا

    function load()
    {
    $("#div").load("test.php");
    }


    و يوجد بالصفحة ايضا وسم معرف باسم div



    <div id="div"></div>

    و رابط لتنفيذ الدالة

    <a href="javascript:load();">اضغط هنا</a>


    الان مجرد الضغط على الرابط راح تعرض صفحة php

    في الديف المحدد

    اسهل و افضل

    و يوجد دوال اخرى

    ajax , post , get

    و لها تطبيقات متقدمة

    ممكن تدخل على موقع جيكويري و تشوف امثلة و شروحات

    شكرا

    هذا ما اردت قوله بالضبط .... لما كل هذه العمليات الأمر اسهل جدا الأن ... إستخدم مكتبة جافاسكربت ... وكما قال الأخوان jQuery هى الأفضل والأسرع والأسهل ...










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض