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

الموضوع: خلل في كود ajax

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

    خلل في كود ajax



    لدي كود ajax واريد تعديله لكي استطيع استخدامه لاكثر من حقل ..
    كود PHP:
    function createRequestObject() {
        var 
    req;
        if (
    window.XMLHttpRequest) {
            
    req = new XMLHttpRequest();
        } else if (
    window.ActiveXObject) {
            
    req = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            
    alert('Problem creating the XMLHttpRequest object');
        }
        return 
    req;
    }
    var 
    http createRequestObject();
    function 
    sendRequest(stringvalue) {
        
    http.open('get''ajax.php?'+string+'='+value);
        
    http.onreadystatechange handleResponse(string);
        
    http.send(null);
    }
    function 
    handleResponse(id) {
        if (
    http.readyState == && http.status == 200) {
            var 
    response http.responseText;
            if (
    response) {
                
    document.getElementById(id).innerHTML response;
            }
        }

    هناك خلل في الكود السابق وبالتحديد في
    كود PHP:
    function sendRequest(stringvalue) { 
    كود PHP:
    http.onreadystatechange handleResponse(string); 
    كود PHP:
    function handleResponse(id) { 
    كود PHP:
    document.getElementById(id).innerHTML response
    حيث انني اقوم بارسال القيم للدالة بالطريقة
    كود PHP:
    sendRequest('name''swalif'
    تستقبل الدالة sendRequest المتغير string ومن ثم تقوم بارساله للدالة handleResponse ..
    الان المشكلة في هذا السطر بالتحديد .. حيث انني لو قمت بـ
    كود PHP:
    http.onreadystatechange handleResponse
    ستعمل بشكل صحيح .. لكن سيكون علي تحديد الـ id مسبقا بينما اريد تحديده عن طريق الدالة sendRequest وهي تقوم بارساله للدالة handleResponse آلياً ..

    هل من حل لهذه المشكلة ؟







  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2007
    المشاركات
    393


    عرف متغير خارج الدوال كما فعلت بhttp باسم var id
    واجعل handleResponse بدون paramaters وداخل sendRequest غير الid.





    __________________
    موقعي الشخصي
    www.Flasher.ws

    جزيرة الفنون
    www.Artsisland.net

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


    أخي الكريم Flasher .. لقد حاولت كثيراً في تطبيق ماذكرته ولم أفلح ..

    هل لنا بمثال جزاك الله خيراً ..






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    281


    أخي الكريم ياريت توضح لنا انت الكود لشو تستخدمه على شان أقدر افيدك ,, ممكن بطريقة تانية أسهل .

    تحياتي
    فراس





    __________________
    مدونتي
    Www.AlMashroo.Com

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


    أخي الكريم ياريت توضح لنا انت الكود لشو تستخدمه على شان أقدر افيدك ,, ممكن بطريقة تانية أسهل .

    تحياتي
    فراس





    __________________
    مدونتي
    Www.AlMashroo.Com

  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2007
    المشاركات
    393


    أخي الكريم Flasher .. لقد حاولت كثيراً في تطبيق ماذكرته ولم أفلح ..

    هل لنا بمثال جزاك الله خيراً ..
    تفضل
    كود:
    <script type="text/javascript">
    function createRequestObject() {
        var req;
        if (window.XMLHttpRequest) {
            req = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            alert('Problem creating the XMLHttpRequest object');
        }
        return req;
    }
    var id = null;
    var http = createRequestObject();
    function sendRequest(string, value, _id) {
    	id = _id;
        http.open('get', 'ajax.php?'+string+'='+value);
        http.onreadystatechange = handleResponse;
        http.send(null);
    }
    function handleResponse() {
        if (http.readyState == 4) {
            var response = http.responseText;
            if (response) {
                document.getElementById(id).innerHTML = response;
            }
        }
    }  
    sendRequest('sss', 'vvvv', 'Result')
    </script>
    
    <div id="Result">loading...</div>






    __________________
    موقعي الشخصي
    www.Flasher.ws

    جزيرة الفنون
    www.Artsisland.net

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


    أشكرك أخي العزيز Flasher .. وأسأل الله أن يوفقك في الحياة الدنيا والآخرة .






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


    نقطة أخيرة .. هل يمكن إضافة نص أو صورة تُعرض أثناء إستدعاء البيانات ؟
    كود:
    loading...







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


    أخي العزيز فراس .. كما أسلفت أنني اريد استخدام الـ ajax لعدة حقول وليس لحقل واحد ..
    أعتقد أن الصورتين توضح المقصود ..







    الصور المرفقة الصور المرفقة   

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


    اها فهمت أخي الكريم ,, بالنسبة لسؤالك هل يمكنك وضع صورة نعم يمكنك ذلك من خلال وضع الكود التالي قبل
    كود:
      if (http.readyState == 4) {
    ضع الكود الآتي :
    كود:
    var ajaxtest = document.getElementById("id here");
    ajaxtest.innerHTML = "your HTML code here :) or ur msg!";
    تحياتي
    فراس





    __________________
    مدونتي
    Www.AlMashroo.Com

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


    أشكرك أخي العزيز فراس ، لكن لدي ملاحظة بسيطة وهي انه لا حاجة لوضع متغير جديد باسم ajaxtest بل سنضعه مباشرة ، ايضاً لو ركزت في المثال الذي وضعه Flasher ستجد انني قمت بتحديد الـ id عن طريق الدالة sendRequest ..

    كود PHP:
    document.getElementById(id).innerHTML "loading..."
    لم اجربه لكن منطقياً سيعمل ..

    شكرا لك مرة اخرى ، واتوقع انك تعرف هذه الملاحظات مسبقاً






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


    لقد استغنيت عن الـ paramater _id لان قيمته مساوية للـ paramater string بالاضافة لـ Result للتفريق بين اسم العنصر في الـ form وبين الـ element الذي ستعرض فيه النتيجة ..

    لمن يريد الكود كاملاً ..
    كود PHP:
    function createRequestObject() {
        if (
    window.XMLHttpRequest) {
            return new 
    XMLHttpRequest();
        } else if (
    window.ActiveXObject) {
            return new 
    ActiveXObject("Microsoft.XMLHTTP");
        } else {
            
    alert('Problem creating the XMLHttpRequest object');
        }
    }
    var 
    http createRequestObject();
    var 
    id null;
    function 
    ajax(stringvalue) {
        
    id string+'Result';
        
    http.open('get''ajax/ajax.php?'+string+'='+value);
        
    http.onreadystatechange handleResponse;
        
    http.send(null);
    }
    function 
    handleResponse() {
        
    document.getElementById(id).innerHTML '<img src="ajax/loading.gif" alt="loading..." />';
        if (
    http.readyState == && http.status == 200) {
            var 
    response http.responseText;
            if (
    response) {
                
    document.getElementById(id).innerHTML response;
            }
        }

    ولمن يريد الصورة اثناء التحميل فانه يمكن الحصول عليها من Ajaxload - Ajax loading gif generator

    مرة أخرى شكراً للاخوان Flasher ، فراس ..






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


    خلل فني





    التعديل الأخير تم بواسطة dev11 ; 11-12-2007 الساعة 02:27 AM

  14. #14
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    242


    أخي الكريم ياريت توضح لنا انت الكود لشو تستخدمه على شان أقدر افيدك ,, ممكن بطريقة تانية أسهل .

    تحياتي
    فراس
    ايوه ياريت توضح علشان نقدر نفيدك






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





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

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

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