الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود اضافة تعليق

بدأه رااحيل في 24 يوليو 2010 · 8 رد · 4,562 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

اتمنى تساعدونى

شكرااا مقدما

00020309t.gif

1958_1963.gif
#2

إستخدمي FireFox فيه إضافة إسمها fireBug , منها تستطيعن الضغط على أي زر في أي صفحة باليمين ثم inspect elemetnt وتظهر لك كل التوابع والأحداث وكلاسات ال CSS والحافاسكربت الخاصة به , يحتاج لوقت للتتبع بالتأكيد , لكن على الأقل يمكن إستعمالها مثلا التعليقات في يوتيوب , أو حتى تعليقات الأسئلة في المنتدى

1

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

السلام عليكم

اختي الكريمة الجافا سكريبت ابدا لا تتعامل مع السيرفر وبذلك لا يمكنك ارسال بيانات باستخدامها مباشرة الى قاعدة البيانات

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

الجافا سكريبت ينحصر عملها بجانب الزبون طبعا الايجاكس ترسل طلبات للسيرفر ولكن يتم االتعاون فيما بينها وبين لغة من طرف السيرفر كال jsp or asp or asp.net or php or coldfusion or perl or

.....

بالتوفيق

1

In bad state

#4

ايه....؟ :wacko:

00020309t.gif

1958_1963.gif
#5

شكرا اولا للاخ هيثم

و لكنى اري شىء جاهز...هذا ليس من اختصاصى :blush:

الاخ اكس

افهم ما تقول و لكنى اريد عندما يضغط على زر اضافة

الفورم يختفى و تظهر رسالة انه تم استلام التعليق فقط لا غير

00020309t.gif

1958_1963.gif
#6

مممممممممممممممم

هنا بالتاكيد الجافا سكريبت لها دور اساسي وهو في الاي جاكس

ولكن بالتاكيد تحتاجين الى لغة برمجة من طرف السيرفر

يعني انتي كيف تقومين بالادخال الى قاعدة البيانات باي لغة كما ذكت على ما اظن بال jsp

اذا

ما عليكي الا وضع صفحة jsp بها استقبال متغير ياتي من الجافا سكريبت . انا لا اعرف جافا ولكن

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

يعني :

انتي تحتاجين الى صفحة jsp تقوم باستقبال متغير من نمط GET وتتعامل مع هذا المتغير هذا المتغير هو عبارة عن الخبر اي سيتم استقباله بالخلفية

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

بالتوفيق وان شاء الله تلاقي الحل

تم تعديل هذه المشاركة بواسطة X-File في 24 يوليو 2010 في 16:14

In bad state

#7

إذن لتفكيك المشكلة لديك 3 أمور :

1. كود جافاسكربت لعمل إظهار للفورم وتغيير شكله وغير ذلك وهذه عادة ماتستخدم فيها الحيلة الأزلية :

GetElementById('comment_body_id').Display='none';

وللإظهار :

GetElementById('comment_body_id').Display='';

2. كود أجاكس , لإرسال البيانات "إن كنتي تريدين التعامل بالأجاكس , لكن كملاحظة نظام التعليقات في المنتدى يرسل البيانات بدون أجاكس , ويمكنك تجربته بالضغط على زر "أضف تعليق أو إستفسار"

3. كود PHP أو JSP أو ASP.NET أو أي لغة برمجة server side , لأنها التي ستسلم البيانات من مربع النص وإضافة التعليق وسترسل في حالة إستخدام الأجاكس بال GET مثلا و بدون إستخدام الأجاكس بالطريقة البسيطة POST ..

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

كمثال لشكل كود الأجاكس بإستخدام طريقة prototype

registerComm: function( id,post_id,topic_id )
{
// Find rep up
                if( !$( id ) ){ return; }
                var close_date = $( id ).down('.comment_div');

                if( $( close_date ) ){
                        $( close_date ).observe( 'click', ipb.global.addcomment.bindAsEventListener(this, 1, id) );
                }
var sendUrl = BASEURL + '&post_id'+ post_id +'&secure_key=' + ipb.vars['secure_hash'] + '&tid='+ topic_id ;

                 comm[ id ] = { obj: $( id ),pid: post_id , url: sendUrl, tid: topic_id};

//alert(type);
},
 addcomment: function( e )
        {

              Event.stop(e);
                var type = $A(arguments)[1];
                var id = $A(arguments)[2];
                var value =( type == 1 ) ? 1 : -1;

                if( !comm[ id ] ){
                        return;
                } else {
                        var rep = comm[ id ];
                }
                postid = rep.pid;

                // Send ping

	comment_ = document.getElementById('comment').value ;
//alert(rep.url + '&type=' + newtype);
 new Ajax.Request( rep.url + '&the_comment=' + comment_ ,
                                                {
                                                        method: 'get',
                                                        onSuccess: function( t )
                                                        {
                                                                if( t.responseText.search('Done') )
                                                                {
                                                                        try {
                                                                                // It worked! Hidc the rep buttons

                                                                                alert(t.responseText);

                                                                        } catch(err) { }
                                                                        }

								 else
                                                                {
                                                                        alert("problem");
                                                                        if( t.responseText == 'nopermission' )
                                                                        {
                                                                                alert( ipb.lang['no_permission'] );
                                                                        }
                                                                        else
                                                                        {
                                                                                alert(ipb.lang['action_failed'] + ": " + t.responseText );

                                                                        }
                                                                }
                                                        }
                                                });


        },

هذا لو كان الجافاسكربت في ملف آخر يستخدم طريقة ال register لربط الأحداث مع الدوال التي تخصها ..

حاليا يجب ربط الحدث click عند الضغط على زر إضافة التعليق مع الدالة

 registerComm: function( id,post_id,topic_id )

بحيث في كود ال html مباشرة يضاف الحدث OnClick() ويقوم بإرسال البيانات من ال div الذي يخص إضافة التعليق للدالة أعلاه .

لأنه عند الضغط على الرز سترسل البيانات للدالة التالية

 addcomment: function( e )

التي سترسل الطلب بالأجاكس عن طريق GET لملف بعيد php مثلا ليعالجها .. ويجب أن يعيد رسالة خطأ أو صواب مثلا ليعلم الأجاكس بالنتيجة ليتصرف الأجاكس وفقها لإظهار أو إخفاء الأزرار وغير ذلك .. بالجافاسكربت هذه المرة بالتأكيد كما أشرت سابقا

القضية طويلة بالتالي تحتاح لتفكيك بالتدريج .

1

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#8

شكرا اخى هيثم

ربنا يستر لانى ماليش فى الجو دة خالص

تعبتكم معايا يا جماعة

فاصل و نواصل بعد المحاولات

00020309t.gif

1958_1963.gif
#9

تم منح نقاط السؤال للأخ HGB لأن إجابته كافية للمتابعة ولأن صاحبة الموضوع لم تقم بترشيح إجابات بديلة.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

مواضيع مشابهة