Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ссылки в календаре
 
 автор: l-mariachi   (02.06.2008 в 09:52)   письмо автору
 
 

Всем привет, у меня есть скрипт календаря (Нашел где-то), нужно чтобы каждое число было ссылкой а не текстом, весь запарился с этим скриптом....
ссылка нужна типа <a href="День">День</a>
, то есть чтобы на каждый день была своя ссылка типа <a href=1>1</a> <a href=2>2</a> и т.д.
Помогите пожалуйста!!!
Вот сам скрипт:

<script language="JavaScript">

<!-- Begin
monthnames = new Array(
"Январь",
"Февраль",
"Март",
"Апрель",
"Май",
"Июнь",
"Июль",
"Август",
"Сетнябрь",
"Октябрь",
"Ноябрь",
"Декабрь");
var linkcount=0;
function addlink(month, day, href) {
var entry = new Array(3);
entry[0] = month;
entry[1] = day;
entry[2] = href;
this[linkcount++] = entry;
}
Array.prototype.addlink = addlink;
linkdays = new Array();
monthdays = new Array(12);
monthdays[0]=31;
monthdays[1]=28;
monthdays[2]=31;
monthdays[3]=30;
monthdays[4]=31;
monthdays[5]=30;
monthdays[6]=31;
monthdays[7]=31;
monthdays[8]=30;
monthdays[9]=31;
monthdays[10]=30;
monthdays[11]=31;
todayDate=new Date();
thisday=todayDate.getDay();
thismonth=todayDate.getMonth();
thisdate=todayDate.getDate();
thisyear=todayDate.getYear();
thisyear = thisyear % 100;
thisyear = ((thisyear < 50) ? (2000 + thisyear) : (1900 + thisyear));
if (((thisyear % 4 == 0) 
&& !(thisyear % 100 == 0))
||(thisyear % 400 == 0)) monthdays[1]++;
startspaces=thisdate;
while (startspaces > 7) startspaces-=7;
startspaces = thisday - startspaces; //+ 1;
if (startspaces < 0) startspaces+=7;
document.write("<table cellspacing=4 align=center class=ta border=0 ");
document.write("bordercolor=black>");
document.write("<tr><td colspan=7><center><strong>" 
+ monthnames[thismonth] + " " + thisyear 
+ "</strong></center></td></tr>");
document.write("<tr>");
document.write("<td align=center>Пн</td>");
document.write("<td align=center>Вт</td>");
document.write("<td align=center>Ср</td>");
document.write("<td align=center>Чт</td>");
document.write("<td align=center>Пт</td>");
document.write("<td align=center><font color=red>Сб</font></td>");
document.write("<td align=center><font color=red>Вс</font></td>"); 
document.write("</tr>");
document.write("<tr>");
for (s=0;s<startspaces;s++) {
document.write("<td></td>");
}
count=1;
while (count <= monthdays[thismonth]) {
for (b = startspaces;b<7;b++) {
linktrue=false;
document.write("<td>");
for (c=0;c<linkdays.length;c++) {
if (linkdays[c] != null) {
if ((linkdays[c][0]==thismonth + 1) && (linkdays[c][1]==count)) {
document.write("<a href=" + linkdays[c][2] + ">");
linktrue=true;
      }
   }
}
if (count==thisdate) {
document.write("<font class=da>&nbsp; ");
}
if (count <= monthdays[thismonth]) {
document.write("" + count + "");
}
else {
document.write(" ");
}
if (count==thisdate) {
document.write(" </font>");
}
if (linktrue)
document.write("&nbsp; </a>");
document.write("</td>");
count++;
}
document.write("</tr>");
document.write("<tr>");
startspaces=0;
}
document.write("</table>");

// End -->

</script>

   
 
 автор: sim5   (02.06.2008 в 10:00)   письмо автору
 
   для: l-mariachi   (02.06.2008 в 09:52)
 

И какие ссылки вы хотите определить на стороне клиента? Все это надо определять на сервере, например, записи новостей или архивы тем в базе, с конкретными датами календаря. То есть при формировании страницы выдавать массив ссылок для JS календаря, а если календарь только на месяц, то вообще лучше обойтись без JS.

   
 
 автор: ONYX   (02.06.2008 в 10:11)   письмо автору
 
   для: sim5   (02.06.2008 в 10:00)
 

В коде есть массив linkdays = new Array(); его нужно заполнить в виде Array(Arra(№ месяца, день),Array(№ месяца, день));
linkdays = new Array(Array(6,1),Array(6,12),Array(6,21),Array(6,17));

   
 
 автор: l-mariachi   (02.06.2008 в 10:21)   письмо автору
 
   для: ONYX   (02.06.2008 в 10:11)
 

не понял про массив linkdays
а что будет если я его переберу так?
ссылки то у кажд. числа то не появятся (((((((((

   
 
 автор: sim5   (02.06.2008 в 10:36)   письмо автору
 
   для: l-mariachi   (02.06.2008 в 10:21)
 

При формировании страницы, заполните вышеуказанный массив реальными ссылками (РНР для JS), а при формировании календаря, используйте год, месяц, число, как индексы этого массива, для получения ссылки из него. Вы имеете представление о массиве?

   
 
 автор: l-mariachi   (02.06.2008 в 10:19)   письмо автору
 
   для: sim5   (02.06.2008 в 10:00)
 

ну я понимаю что надо использовать календраь сервера, но поверь, тут такая ситуация что нужно именно так...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования