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

الموضوع: ربط تنشيط ال submit بنوع الاجابة

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

    ربط تنشيط ال submit بنوع الاجابة



    السلام عليكم
    لدي فورم بسيط يرسل بالاجاكس ويستقبل الناتج في div من صفحة php
    لكن المشكلة اريد الغاء تفعيل زر submit بعد الارسال ونستخدم هذا الكود مثلاً:

    كود PHP:
    this.form.submit();this.disabled=true;return false 
    في الحدث onclick او وجدت فنكشن اخرى :

    كود PHP:
    function submitonce(theform){
    if (
    document.all||document.getElementById){
    for (
    i=0;i<theform.length;i++){
    var 
    tempobj=theform.elements[i]
    if(
    tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
    tempobj.disabled=true
    }
    }

    <form onSubmit="submitonce(this)">

    ويعملان بشكل صحيح لكن اريد ربط هذا العمل بنوع الناتج
    اى في ملف ال php هناك شروط if عادية لارجاع النص
    مثلا اذا ترك المستخدم الاسم فارغاً يرجع رسالة "برجاء ادخال الاسم"
    واذا ترك التعليق فارغ يرجع رسالة "برجاء ادخال التعليق"
    واذا اكتملت كل الحقول سيرجع اجابة "تم اضافة التعليق بنجاح"

    انا اريد تطبيق ال submit disabled في حالة تم اضافة التعليق بنجاح فقط
    لكن في باقي الحالات لا اريد الغاء تفعيله

    اعتقد يمكن عملها بعمل var لكل حالة بالارقام ومطابقتها لكن لقلة خبرتي بالجافا سكربت لا اعرف كيف اطبقها
    فارجو التكرم ممن لديه العلم بها بوضع الشرح او مثال

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





    التعديل الأخير تم بواسطة مهندس مصرى ; 18-10-2008 الساعة 07:03 PM
    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير


  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    3,929


    من باب تقديم المساعدة ولو بالقليل
    انظر هذه الصفحة
    Dynamic Drive- Form Effects

    اعذرني ان كان ردي ليس له علاقة بالموضوع
    فلم افهم ما تقصده جيدا





    __________________
    تحاور مع العاقل بعقل .. اما ان يقتنع او تقتنع
    وتحاور مع الجاهل بعقل .. اما يطقعش او تفرقش
    وتلك الفاظ لا معنى لها كذلك كلماته

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


    شكراً أخي على المساعدة
    للاسف لا يوجد به ما اريده
    للتوضيح
    هذا الكود الذي وضعته
    كود PHP:
     this.disabled=true
    يقوم بعمل disable لزر ال submit حتى لا يتم الضغط عليه اكثر من مرة
    المطلوب هو ليس عمل disable مباشرة
    بل ان يتحقق الاول من النتيجة عن طريق رقم مثلا لكل حالة باستخدام var لكل حالة برقم 1,2,3 ... وهكذا





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Oct 2008
    المشاركات
    81


    أنا استخدم هذه الطريقة في تسجيل الدخول (رح تكون في التطبيق القادم ) :
    أول شي قبل إرسال المدخلات بالأجاكس يتم التحقق إذا كانت فارغةأو لا أضع هذا في بداية الفنكشن تبعت الإرسال :
    كود:
    var username = document.getElementById('username');
    var password = document.getElementById('password');
    if (username.value==null || username.value=='')
     {
     alert ("لم تقم بكتابة اسم المستخدم!")
      username.focus();
     return
     } 
     if (password.value==null || password.value=='')
     {
     alert ("لم تقم بكتابة كلمة المرور!")
      password.focus();
     return
     }
    فإذا كان أحد الحقول فاضية رح تتوقف العملية و يصير تركيز على الحقل الفاضي باستخدام focus()
    ولما يكون كل شي تمام رح توصل لأخر العملية و هناك تحط الامر يلي يخلي الزر معطل
    أتوقع هذا يلي يهمك في التعليقات فأنت اعمل تعديلات بما يناسبك ولاتنسى تحط تحقق إذا كانت الحقول فاضية في البي اتش بي حتى يكون السكربت أأمن
    وبالنسبة عندي إذا كانت كلمة المرور خطأ رح أقوم بطباعة نموذج تسجيل الدخول مرة أخرى و أنبه أن كلمة المرور خطأ في صفحة البي اتش بي و الاجاكس يستقبلها في نفس المكان
    يعني لو عندك captcha ممكن تتحقق منها بنفس الطريقة
    أتمنى ان يكون هذا ما تريده






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


    تم
    عدل على المثال بالمرفقات للي بيناسبك





    الملفات المرفقة الملفات المرفقة
    __________________
    Professional Java?Script Programmer and Web Developer

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


    شكراً جزيلاً اخوتي .::سعد السيد احمد::. , .::ليوناردو دافينشي ::.
    ولا لا اعلم كيف اشكركم على جهودكم العظيمة
    جزاكم الله خيرا

    -------
    لدي سؤال آخر وسامحوني على ثقلي

    كنت سالت الاخ سعد سابقاً عن عمل onload لكن في الاجاكس لان الصفحة في الحقيقة لا تعمل load بالاجاكس ولا تنفع استخدام الخاصية onload في حالة اذا اردت تنفيذ دالة عند فتح الصفحة بالاجاكس
    يمكن استخدام settimeout لكن المشكلة انها اذا عملتها سيتم تنفيذها كل 30 ثانية مثلا
    انا اريد تنفيذ الحدث في حالة تحميل الصفحة فقط ((في حالة الاجاكس)) فهل من حل؟؟

    انا اتوقع ان يكون الاعتماد على ال readyState

    فهل يمكن مثلاً عمل
    كود PHP:
    if (http_request.readyState == 4) {
    myfunction();

    طبعا قمت قبلها بتعريف http_request

    لكن هل يمكن تنفيذ هذه الدالة بعد اتمام طلب الصفحة؟
    ام ان هناك طريقة أخرى؟





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Oct 2008
    المشاركات
    81


    الطريق يلي وضعتها ممكن إنها تعمل بحيث myfunction(); تكون عبارة عن فنكشن ترسل أجاكس لكن لا تنسى تعمل readyState خاص فيها حتى لا تتلخبط مع الأولى و تصير العملية غير منتهية

    لكن فيه طريقة أسهل و أحسن :
    مشكلة الأجاكس أنه لما يستقبل بيانات ما يشغل الجافا سكربت يلي فيه (لكن لو تجرب مكتبة jqeury رح تلاحظ ان بعض أوامرهم تشغله بحيث أنهم يقوموا باخذ الجافا سكربت يلي في الصفحة و وضعها في نود جديد حتى يشغله المتصفح و أنا لسى أحاول أجيب الطريقة كاملة حيث إني نجحت مع الفايرفوكس لكن الإنترنت إكسبلورر ما نجحت لسى معي )

    لذلك لو تتذكر في التطبيق الاول أخر إضافة عملناها خلينا الأشرطة تبعت التصويت تتحرك صح ؟
    كيف خلينا أمر (فنكشن) الجافا سكربت يشتغل ؟؟
    عملنا onload على الصورة حتى تشغل العملية يلي موجودة أصلاً في الملف الأصلي
    وهذا يلي رح تعمل لو أردت عملية معينة تشتغل عند إحضار صفحة بالأجاكس و لتكن العملية هي اجاكس أيضاً مافي مشكلة لكن الاهم أن تكون في الصفحة الأصلية
    و انت علشان تخفي الصورة كل ماعليك تجيب صورة فاضية حجمها أصغر شي ممكن و تعطيها الطول و العرض صفر و تحط عليها حدث onload و تكب الفنكشن يلي تريده يشتغل سواء كان الفنكشن يعمل أجاكس و يحضر صفحة ثانية لديف ثاني او فنكشن عادي (راجع التطبيق الاول و شوف كيف حطيت الحدث على الصور)
    الظاهر طولت لكن إن شاء الله تكون فهمتني و أي أسئلة ثانية أو مافهمت جزئية معينة تفضل






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


    ما الك الا تعمل هيكــ,,,



    ضعه في الهيد
    كود PHP:
            <script language="javascript" type="text/javascript">
                
    window.onload = function() {
                    
    myfunction();
                }
     
            
    </script> 
    ضعه في أخر الصفحة قبل </body>
    كود PHP:
     <script language="javascript" type="text/javascript">
    window.onload();
     
    </script> 






    __________________
    Professional Java?Script Programmer and Web Developer

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


    شكراً لكم على مساعدتكم وعلى جهودكم
    للاسف لم تعمل فكرتك اخي ليوناردو دافينشي
    وبالنسبة لفكرتك اخي سعد لم تنجح ايضاً فانا اتعجب كيف نجحت معك في التصويت .. (بركات )
    انا اول شىء جربته هو عمل onload ولم تنجح عند عمل انكلود للصفحة بالاجاكس لكن تنجح اذا طلبت الصفحة بطريقة عادية بدون اجاكس

    وايضاً فكرة ال readystat فشلت
    المشكلة انه فعلا كما ذكرت لا يتم تنفيذ اكواد الجافا سكربت المُرسلة بالاجاكس
    بعض المواقع الاجنبية ناقشت هذه المشكلة لكن كانت النتيجة كما قال الاخ ليوناردو دافنشي لكن للاسف لا تعمل مع اني نفذتها في آخر الصفحة
    Technote Details :: JavaScript OnLoad events do not work with AJAX panels
    Execute AJAX onLoad? - CodingForums.com
    فانا غلبت مع هذه المشكلة :anger2:
    هل ممكن ان تذكر طريقة ال jquery او اذا كانت لديك فكرة أخرى؟





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Oct 2008
    المشاركات
    81


    شكراً لكم على مساعدتكم وعلى جهودكم
    للاسف لم تعمل فكرتك اخي ليوناردو دافينشي
    وبالنسبة لفكرتك اخي سعد لم تنجح ايضاً فانا اتعجب كيف نجحت معك في التصويت .. (بركات )
    انا اول شىء جربته هو عمل onload ولم تنجح عند عمل انكلود للصفحة بالاجاكس لكن تنجح اذا طلبت الصفحة بطريقة عادية بدون اجاكس

    وايضاً فكرة ال readystat فشلت
    المشكلة انه فعلا كما ذكرت لا يتم تنفيذ اكواد الجافا سكربت المُرسلة بالاجاكس
    بعض المواقع الاجنبية ناقشت هذه المشكلة لكن كانت النتيجة كما قال الاخ ليوناردو دافنشي لكن للاسف لا تعمل مع اني نفذتها في آخر الصفحة
    Technote Details :: JavaScript OnLoad events do not work with AJAX panels
    Execute AJAX onLoad? - CodingForums.com
    فانا غلبت مع هذه المشكلة :anger2:
    هل ممكن ان تذكر طريقة ال jquery او اذا كانت لديك فكرة أخرى؟
    معقول ما اشتغلت طريقتي ؟؟
    أنا الأن صارت معتمدة لدي و بديت أسخدمها في سكرباتي و الحمد لله دائما شغالة
    تأكد ان رابط الصورة يكون صحيح و يحتوي على صورة و هذا مثال لكود الصورة يلي عندي :
    كود HTML:
    <img onload="ref()" src="img/0.gif" width="0" height="0" />
    الصورة img/0.gif موجودة فعلا و لكن كلها بيضاء و صغيرة جداً
    و العملية ref() تكون موجودة في الصفحة الأصلية يلي تقوم بجلب الصفحة الثانية
    جرب و إن شاء الله يشتغل
    بالنسبة لطريقة الjquery غالباً كل إستدعائتهم للأجاكس يقوموا بفصل كود السكربت الموجود في الصفحة المطلوبة و يحطوه في الهيد (هذي الفكرة العامة بعد ما قعدت يوم كامل أحوس في ملف الjquery الغير مضغوط حاولت أشتغل عليه ما نجحت غير في الفايرفوكس)
    و إذا تريد مثال روح على التطبيق المثبت تبع التعليق السريع و جرب حط alert() مثلاً في الصفحة يلي رح يقوم الأجاكس بجلبها و رح تلاحظ إنها اشتغلت !!

    رجاءً تأكد من طريقتي مرة ثانية و قلي إيش يصير معك





    التعديل الأخير تم بواسطة سعد السيد احمد ; 21-10-2008 الساعة 01:38 AM

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


    الله يكرمك ويبارك فيك
    نجحت الطريقة
    بارك الله لك وشكراً جزيلاً على مساعداتك لي





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير





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

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

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