سؤال

لدي كود جافا سكريبت التقويم وأنها تعمل تماما كما يخلق ذلك عند تحميل الصفحة.ومع ذلك كنت أتساءل إذا كان من الممكن إضافة الأحداث إلى ذلك.لقد وجدت البرنامج المساعد (مسج) التي تمكن المستخدم من تحوم فوق td مع فئة "الحدث" و الحدث سيتم عرض.ذلك لأن هذا التقويم لا يتم استخدامها من قبل لي ولكن قبل شخص آخر الذي لا يعرف شيئا عن تطوير كنت أتساءل إذا كان هناك طريقة لجعل ملف php أو تحميل أو شيء من هذا حتى تستطيع تحميل هذا الحدث.أعني دعونا نقول أنها تريد الحدث على 3 ثم تحميل ملف php يقرأ و يقول جافا سكريبت لإضافة فئة "الحدث" أن تاريخ مسج بالباقي.هل من الممكن ؟ لا أستطيع حتى معرفة كيفية القيام بذلك وأنا آمل حقا وأوضح نفسي.هنا هو بلدي جافا سكريبت راجع للشغل.

function buildCal(){
    var d = new Date();
    var month = d.getMonth()+1;
    var year = d.getFullYear();
    var monthName=['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
    var daysInMonth=[31,0,31,30,31,30,31,31,30,31,30,31];

    var objectDay = new Date(year, month-1, 1); //fix date bug when current day is 31st
    objectDay.od=objectDay.getDay()+1; //fix date bug when current day is 31st

    var todaydate=new Date() 
    var scanfortoday=(year==todaydate.getFullYear() && month==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added

    daysInMonth[1]=(((objectDay.getFullYear()%100!=0)&&(objectDay.getFullYear()%4==0))||(objectDay.getFullYear()%400==0))?29:28;

    var t='<div class="main"><table class="main" cols="7" cellpadding="0" border="0" cellspacing="0">';
    t+='<h3 class="monthCSS" align="center">'+monthName[month-1]+' - '+year+'</h3><tr align="center">';


    for(s=0;s<7;s++)t+='<td class="daysofweek">'+"DoLuMaMiJuViSa".substr(s*2,2)+'</td>';

    t+='</tr><tr align="center">';
    for(i=2;i<=42;i++){
        var x=((i-objectDay.od>=0)&&(i-objectDay.od<daysInMonth[month-1]))? i-objectDay.od+1 : '&nbsp;';
            if (x==scanfortoday)
                x='<td class="today">'+x+'</td>'
            t+='<td class="days">'+x+'</td>';
        if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
    }
    return t+='</tr></table></div>';
}

شيء آخر, كما يمكنك أن ترى هنا ، فإنه يضيف blankspaces حتى يحصل على موعد الفعلية.لقد كنت تحاول أن تجعل هذا الاختيار إذا كان(x لم يكن عدد) ثم إضافة td class="الحشو" ومع ذلك فعل هذا كنت تحاول استخدام x.مباراة(/[0-9]+/) ولكن لا يبدو أن العمل سيكون أيضا أول مرة أحاول أن استخدام التعابير المنطقية مع جافا سكريبت أن يعرف أحد لماذا هذا الخطأ ؟ أو كيف تحقق ذلك ؟


تحرير

شيء غريب يحدث مع هذا البرنامج النصي ولا أدري لماذا حاولت أن تغير من

t+='<td class="days">'+x+'</td>';

إلى

t+='<td class="days' + x +'">'+x+'</td>';

هذا حتى أتمكن من تحديد كل td ولكن عندما أفعل هذا جديد td يتم إنشاؤها الذي يحتوي على

<td id="days&lt;td class=" today="">1</td>

ليس لدي فكرة لماذا يحدث هذا, أنا فقط أعرف أنه يعبث مع رمز لأن بعد ذلك أحصل على "> المطبوعة (بسبب ونقلت المباراة سوء عن هذا td.... لماذا يحدث هذا ؟

هل كانت مفيدة؟

المحلول

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

على سبيل المثال

$calendar_dates = array(
              [week_1] = array(
                     [sun] = Null
                     [mon] = NULL
                     [tue] = array(
                            [events] = array(
                                    event_id => 'event name'
                                    event_name => ''
                                    event_time => ''
                             )
                     [wed]
                     ...
                 )
              [week_1] => array()
              ...........
  )

بناء الأيام مجموعة من مجرد إنشاء مجموعة من الموعد المحدد الأسبوع الحالي

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

ثم دورة من خلال الأحداث attatch لهم التقويم مجموعة.

يعمل مثل السحر.

للحصول على العمل مع جافا سكريبت فقط صدى بعض جافا سكريبت في رأس ملف html التي تتحكم في فتح وإغلاق يوما.

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

نصائح أخرى

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top