صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 23

الموضوع: عمل تحديث لجزء معين فى الصفحة بــ Ajax

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Nov 2002
    المشاركات
    193

    عمل تحديث لجزء معين فى الصفحة بــ Ajax



    السلام عليكم

    أخوانى الاعزاء أرجو المساعدة فى أيجاد كود ajax خاص بتحديث جزء معين فى الصفحة أتوماتكيا ويكون بصورة لحظية.

    كمثال لو عندى صفحة مبرمجة بلغة php تتحدث فيها بيانات بشكل لحظى مثل بيانات البورصة أو الاحوال الجوية.

    هل يمكن عمل هذا التحديث لمتغير معين فى الصفحة مثل

    كود:
    <div>
         <p><?=$data?></p>
    </div>
    أريد التحديث اتوماتكيا لهذا المتغير أذا تم تغير قيمته فى قاعدة البيانات بدون تدخل من الزائر.

    شكرا





    __________________
    «·´`·.(*·.¸(`·.¸ ¸.·´)¸.·*).·´`··»
    «·´¨*·.¸¸ * P H P Z * ¸.·*¨`·»
    «·´`·.(¸.·´(¸.·* *·.¸)`·.¸).·´`·»


  2. #2
    خبير JavaScript
    تاريخ التسجيل
    Jul 2002
    المشاركات
    2,920


    وعليكم السلام
    في هذا الموضوع بوجد حلك عدل على حسب مبتغاك

    http://www.swalif.net/softs/showthread.php?t=177616






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Nov 2002
    المشاركات
    193


    أخى زيزوار مشكور جدا على ردك الكريم

    لكنى لم أفهم من الطريقة المذكرة غير ان هذا الكود لعرض الوصلات و جلب الصفح ولكنى أريد عمل تحديث لجزء من الصفحة فيه بيانات و ليست و صلات.

    أعتذر جدا لأنى لم أفهم شىء من الكود





    __________________
    «·´`·.(*·.¸(`·.¸ ¸.·´)¸.·*).·´`··»
    «·´¨*·.¸¸ * P H P Z * ¸.·*¨`·»
    «·´`·.(¸.·´(¸.·* *·.¸)`·.¸).·´`·»

  4. #4
    خبير JavaScript
    تاريخ التسجيل
    Jul 2002
    المشاركات
    2,920


    ضع هذا الكود في نفس الصفحة و أزل
    كود HTML:
    <p><?=$data?></p>
    عوضه ب
    كود HTML:
     <p id="data_include"></p>
    واجعل صفحة خارجية هي التي ستستدعيها بالأجاكس نفترض انها هي http://www.wino.ws/test.php?test=data هي التي فيها القيمة $data
    وستجد في الكود متغير
    كود PHP:
    var time 60 // 1 = 1 second 
    غير قيمتها ان اردت ان يتم الجلب على حسب توقيت دون تدخل الزائر

    الكود كاملا
    كود PHP:
     <script type="text/javascript">
    <!--
    // www.wino.ws & script@wino.ws
    var time 60 // 1 = 1 second

    include = function(url,method_,send_){
    var 
    ajax;
    if(!
    method_)method_ "GET";
    if(!
    send_)send_ null;
    if (!
    url) return;
    try{
        
    ajax = new XMLHttpRequest ();
        }
        catch (
    e){
            try {
                
    ajax = new ActiveXObject("Msxml2.XMLHTTP");
                }
        catch (
    _e_) {
            
    ajax = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
    ajax.open (method_urlfalse);
    ajax.send (send_);
    if (
    ajax.readyState==4)
        return 
    ajax.responseText;
    }
    window.setTimeout(function(){
    document.getElementById('data_include').innerHTML = include('http://www.wino.ws/test.php?test=data')
    },
    1000*time);
    //-->
    </script>
    <!-- ////////////////// -->

    <div>
         <p id="data_include"></p>
    </div> 







  5. #5
    عضو نشيط
    تاريخ التسجيل
    Nov 2002
    المشاركات
    193


    شكرا اخى زيزوار على هذا الكود الجميل و المتعوب عليه :nice:

    لكن لى كم ملاحظة على الكود :

    - عندما تمت تجربة الكود لا يقوم بعمل المهمة الخاصة به فحتى لو قمت بعمل رفرش للصفحة عن طريق الطريقة العادية عن طريق المتصفح لم تتغير البيانات مع انى قمت بتغيرها فى قاعدة البيانات يجب الذهاب لصفحة البيانات و عمل رفرش لها لكى تتحدث البيانات فى الصفحة الرئيسية ؟

    - لقد جربت أن أجعل الوقت
    كود PHP:
    var time // 1 = 1 second 
    فلم أجد أى نتيجة فعندما تقوم بعمل رفرش تأخذ الصفحة ثانية لعمل الرفرش و اذا قمت بوضع 60 ثانية تاخذ الصفحة 60 ثانية للرفرش.

    ملحوظة لقد أتبعت الخطوات بالضبط.

    و مشكور لتعبك مع اخى زيزوار وجعله الله فى ميزان حسناتك





    __________________
    «·´`·.(*·.¸(`·.¸ ¸.·´)¸.·*).·´`··»
    «·´¨*·.¸¸ * P H P Z * ¸.·*¨`·»
    «·´`·.(¸.·´(¸.·* *·.¸)`·.¸).·´`·»

  6. #6
    خبير JavaScript
    تاريخ التسجيل
    Jul 2002
    المشاركات
    2,920


    ضع لي الصفحة او الكود الذي استعملت






  7. #7
    عضو نشيط
    تاريخ التسجيل
    Nov 2002
    المشاركات
    193


    مشكور جدا اخى زيزوار على متابعة الموضوع و الردرود

    لقد قمت بأرفاق مثال لكى ترى ما أقصده و حاول ان تعدل فى صفحة data.php وسوف ترى أن القيمة لا تتغير فى الصفحة الرئيسية.

    ومشكور جدا اخى الكريم





    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip phpz.zip‏ (1.2 كيلوبايت, 393 مشاهدات)
    __________________
    «·´`·.(*·.¸(`·.¸ ¸.·´)¸.·*).·´`··»
    «·´¨*·.¸¸ * P H P Z * ¸.·*¨`·»
    «·´`·.(¸.·´(¸.·* *·.¸)`·.¸).·´`·»

  8. #8
    عضو نشيط
    تاريخ التسجيل
    Nov 2002
    المشاركات
    193


    أخى زيزوار لقد أكتشفت كم شىء أخر

    عند بحثى فى المنتدى وجدت نفس الكود فى موضوع أخر http://www.swalif.net/softs/showthread.php?t=179867

    فقلت أجرب هذا الكود أبضا مع أنه هو مثل اللى موجود بالضبط :nice

    و جربته على متصفح فايرفوكس الاصدار الثانى فعمل الكود بنجاح و تم التغيير لحظيا عند ضبط الوقت عند 1 ثانية.

    لكن فى أنترنت أكسبلورر الأصدار السادس لم يتم التغيير حتى عندما أعمل رفرش للصفحة هل الكود يحفظ كاش فى ملفات متصفح أنترنت أكسبلورر أو أن الاكود غير متوافق معه.

    أعذرنى على أسألتى الكثيرة و مشكور جدا أخى زيزوار.





    __________________
    «·´`·.(*·.¸(`·.¸ ¸.·´)¸.·*).·´`··»
    «·´¨*·.¸¸ * P H P Z * ¸.·*¨`·»
    «·´`·.(¸.·´(¸.·* *·.¸)`·.¸).·´`·»

  9. #9
    خبير JavaScript
    تاريخ التسجيل
    Jul 2002
    المشاركات
    2,920


    نعم في انترنت اكسبلورر يكون الكاش مفعل تلقائيا جرب حذف الكاش او عمل ctrl+f5 ان لم يتم التحديث فلربما يكون هناك اختلاف في التعامل بين دالتي أجاكس
    كود PHP:
    ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
    و
    كود PHP:
    ajax = new XMLHttpRequest (); 







  10. #10
    عضو نشيط
    تاريخ التسجيل
    Nov 2002
    المشاركات
    193


    أخى زيزوار بقد قمت بتجربة عمل ctrl+f5 قبل ذلك لكنها لم تحدث البيانات أيضا.

    هل ممكن تشرح لى كيف حذف الكاش من الكود.

    لأننى يجب على حذف الكاش من المتصفح من خلال الكويكز و ملفات الانترنت المؤقتة و فى بعد الاحيان لا تتعدل البيانات أيضا.

    فهل يوجد حل لهذه المشكلة لكى يفعل الأسكريبت مهمته.





    __________________
    «·´`·.(*·.¸(`·.¸ ¸.·´)¸.·*).·´`··»
    «·´¨*·.¸¸ * P H P Z * ¸.·*¨`·»
    «·´`·.(¸.·´(¸.·* *·.¸)`·.¸).·´`·»

  11. #11
    خبير JavaScript
    تاريخ التسجيل
    Jul 2002
    المشاركات
    2,920


    هممم من الأفضل ان ترسل لي الرابط لمعاينته او الكود لأني اشك ان المسألة ليست في الكاش
    وقبل ذالك ارجو ان تجرب الكود الجديد http://www.swalif.net/softs/showpost...5&postcount=10






  12. #12
    عضو نشيط
    تاريخ التسجيل
    Nov 2002
    المشاركات
    193


    مشكور جدا أخى زيزوار و أعرف انى تعبتك معى لكن هل من الممكن عمل أنكلود من خلال الكود نفسه مثل الكود السابق , أى بمعنى :
    كود PHP:
    document.getElementById('data_include').innerHTML = include('http://www.wino.ws/test.php?test=data'
    لأننى أريد التحديث بدون الضغط على وصلات

    و شكرا جزيلا لك اخى الكريم





    __________________
    «·´`·.(*·.¸(`·.¸ ¸.·´)¸.·*).·´`··»
    «·´¨*·.¸¸ * P H P Z * ¸.·*¨`·»
    «·´`·.(¸.·´(¸.·* *·.¸)`·.¸).·´`·»

  13. #13
    عضو نشيط
    تاريخ التسجيل
    Nov 2002
    المشاركات
    193


    للرفع للأهمية





    __________________
    «·´`·.(*·.¸(`·.¸ ¸.·´)¸.·*).·´`··»
    «·´¨*·.¸¸ * P H P Z * ¸.·*¨`·»
    «·´`·.(¸.·´(¸.·* *·.¸)`·.¸).·´`·»

  14. #14
    خبير JavaScript
    تاريخ التسجيل
    Jul 2002
    المشاركات
    2,920


    كود PHP:
     <script type="text/javascript">
    <!--
    // [url]www.wino.ws[/url] & [email]script@wino.ws[/email]
    //_________________________
    var $id "data_include";
    var 
    $time // 1 = 1 second

    var $img_loading '<img src="http://www.napyfab.com/ajax-indicators/images/progressbar_microsoft.gif">';
    var 
    $msg '<br>loading ....';
    //_________________________
    var http_request false;

    include = function(
    $url,$method,$send){
    if(!
    $url)return false;
    if(!
    $method)$method "GET";
    if(!
    $send)$send null;
    document.getElementById($id).innerHTML $img_loading+$msg// dellet 
    http_request false;
    if (
    window.XMLHttpRequest) { 
        
    http_request = new XMLHttpRequest();
        if (
    http_request.overrideMimeType) {
             
    http_request.overrideMimeType('text/xml');
            }
        } else if (
    window.ActiveXObject) { 
        try {
            
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (
    e) {
            try {
            
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (
    e) {}
        }
    }
    if (!
    http_request) {
            
    alert('Cannot create XMLHTTP');
            
    document.getElementById($id).innerHTML "";
            return 
    false;
        }
        
    http_request.onreadystatechange alertContents;
        
    http_request.open($method$urltrue);
        
    http_request.setRequestHeader('Content-Type''text/html; charset:windows-1256');
        
    http_request.send($send);
    }
    function 
    alertContents() {
        if (
    http_request.readyState == 4) {
            if (
    http_request.status == 200) {
                
    document.getElementById($id).innerHTML http_request.responseText;
            } else {
                
    alert('There was a problem with the request.');
                
    document.getElementById($id).innerHTML "";
                return 
    false
            
    }
        }
    }
    window.setInterval(function(){include('http://www.swalif.net/softs')},1000*$time);
    //-->
    </script>

    <!-- ////////////////// -->
     <div align="center" id="data_include"></div> 
    يمكنك إزالة هذا السطر ان اردت ان لا تظهر صورة التحميل
    كود PHP:
    document.getElementById($id).innerHTML $img_loading+$msg// dellet 
    كما يمكنك التعديا على الكود الذي أعطيتك قبلا بتغيير هذه الدالة
    كود PHP:
    window.setTimeout(function(){
    document.getElementById('data_include').innerHTML = include('http://localhost/phpz/data.php')
    },
    1000*time); 
    الى
    كود PHP:
    window.setInterval(function(){
    document.getElementById('data_include').innerHTML = include('http://localhost/phpz/data.php')
    },
    1000*time); 







  15. #15
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    49

    انا حصلت معى من قبل واليك الحل



    حصلت معى واليك الحل
    الحل انك توقف الكاش للصفحة
    عن طريق ال php

    ضع هذا الكود فى كلا الصفحتين
    وسيعمل باذن الله :deal:

    كود PHP:
    <?
    header 
    ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
            
    header ("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT"); // always modified
            
    header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
            
    header ("Pragma: no-cache");
            
    ?>






    __________________
    أسم الشركة :- عرب فور ديزين - Arab4Des
    أداء الشركة :- أستضافة وتصميم
    هاتف الشركة :- 0124360042
    رابط الشركة :- www.arab4des.com
    العضويه يستخدمها شخصان





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

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

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