JavaScriptカレンダーのコードがあり、ページが読み込まれたときに作成されるため、完全に機能します。ただし、イベントを追加できるかどうかは疑問でした。ユーザーがクラス「イベント」の td にカーソルを合わせると、イベントが表示されるようにするプラグイン (jQuery) を見つけました。このカレンダーは私ではなく、開発について何も知らない他の誰かが使用するので、彼女がイベントをアップロードできるように、php ファイルまたはアップロードなどを作成する方法があるかどうか疑問に思っていました。つまり、彼女が3日にイベントが必要だとしましょう。次に、ファイルをアップロードし、PHPがそれを読み取り、javascriptにその日付のクラス「イベント」を追加するように指示し、jQueryが残りを行います。出来ますか?私はそれを行う方法を理解することさえできません。私は自分自身を説明したいと思っています. これが私のjavascriptです。
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 : ' ';
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>';
}
ここでわかるように、実際の日付になるまで空白を追加します。if(x is not a number) をチェックしてから td class="padding" を追加しようとしましたが、これを行うために x.match(/[0-9]+/) を使用しようとしましたが、そうではありませんでした '動作しているように見えますし、javascript で正規表現を使用しようとするのも初めてです。なぜそれが間違っているのか誰にもわかりませんか? または実際にそれを確認する方法は?
編集
このスクリプトで何か奇妙なことが起こっています。理由はわかりません。変更しようとしました
t+='<td class="days">'+x+'</td>';
に
t+='<td class="days' + x +'">'+x+'</td>';
これで、各 td を選択できましたが、これを行うと、次を含む新しい td が生成されます
<td id="days<td class=" today="">1</td>
なぜこれが起こるのかわかりません。後で "> が出力されるため、コードをいじっていることはわかっています(この新しい td によって引用符が一致しないためです...なぜこれが起こっているのですか?