
22.03.2010, 20:48
|
|
Moderator - Level 7
Регистрация: 05.11.2007
Сообщений: 894
С нами:
9744746
Репутация:
1474
|
|
и снова я. когда вывожу таблицу календаря и отмечаю в ней текущую дату, то после неё возникает новая клетка "undefined" я хз откуда она появляется, цикл иф елзе  как избавится от этого undefined?
в коде проблемный момент прокомментирован капсом
Код:
<!DOCTYpE HTML pUBLIC "-//W3C//DTD HTML 4.01 transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<meta name="generator" content="pSpad editor, www.pspad.com">
<title></title>
<style>
body{background-image:url(http://byaki.net/uploads/posts/2008-02/1204270244_1.jpg); background-repeat: no-repeat;}
p{color:red ; }
h3{color:GreenYellow;}
h2{color:Gold;}
table {border:darkred solid 1px;}
td { text-align:center;width:40px;background-color:lightgrey;border:darkred solid 1px; }
td.one {font-weight:bold; background-color: grey; }
td.two {font-weight:bold; background-color: red; }
td.three {font-weight:bold; background-color: darkred; color:white; }
</style>
</head>
<body>
<script type="text/javascript">
var monthName= new Array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");
var dayName = new Array("Вс","Пн","Вт","Ср","Чт","Пт","Сб");
time = new Date();
//выводим шапку с названием текущего месяца
document.write("<h3 align=center ><FONT SIZE=3>Календарь на текущий месяц:"+" "+"<h2>" +monthName[time.getMonth()]+ "</h2>" + "</FONT></h3><p ALIGN=CENTER>");
/////// находим какой день первый в этом месяце
day = time.getDay() ;
result = (time.getDate() % 7)-1 ;
if (result > day) { day += 7 ; }
firstDay = day - result ;
// document.write(firstDay) ;
// находим сколько дней в этом месяце
if (time.getMonth() == 1) {
// добавляем код если год високосный
thisYear = time.getYear() + 1900
if (thisYear % 4 == 0) {
if (thisYear % 100 == 0) {
if (thisYear % 400 == 0) { daysInMonth = 29 }
else { daysInMonth = 28 }
}
else { daysInMonth = 29 }
}
else { daysInMonth = 28 }
}
else {
if (time.getMonth() == 0 || time.getMonth() == 2 || time.getMonth() == 4 || time.getMonth() == 6 || time.getMonth() == 7 || time.getMonth() == 9 || time.getMonth() == 11) {
daysInMonth = 31 }
else { daysInMonth = 30 }
}
////////////////////////////
document.write(" <table align='center' cellpadding='5' border='0' cellspacing='0' style='filter:alpha(opacity=60); opacity:0.5'><tr>")
//рисуем заголовки дней недели. выходные красным цветом
for (var s=0; s<7; s++)
{ if (s==0 || s==6){document.write("<td class='two'>"+dayName[s]+"</td>");}else
document.write("<td class='one'>"+dayName[s]+"</td>");
}
document.write("</tr>")
//рисуем пустые дни
for (i = 0; i < firstDay; i++) {
document.write("<td >  </td>")
}
// рисуем дни
d = firstDay
for (i = 1; i <= daysInMonth; i++) {
if (!(d < 7)) {
document.write("<tr>")
d = 0 }
if (i == time.getDate()) { //показываем сегодняшний день
dispDay = document.write("<td class='three'>"+i+"</td>"); //ВОТ ТУТ КОСЯК - ЕСЛИ УБРАТЬ ДОКУМЕНТ.ВРАЙТ И ТЕГИ ТО ВЫВОДИТ НОРМАЛЬНО
}
else { dispDay = i }
document.write("<td ><p ALIGN=CENTER>" + dispDay + "</p></td>")
d++
}
//рисуем пустые клетки в полседние пустые дни
if (d < 7) {
for (i = d; i < 7; i++) {
document.write("<td >  </td>")
}
}
document.write("</tr></TABLE>")
</script>
</body>
</html>
|
|
|

23.03.2010, 02:46
|
|
Участник форума
Регистрация: 02.02.2009
Сообщений: 146
С нами:
9090281
Репутация:
43
|
|
Ты не правильно код написал.
PHP код:
<!DOCTYpE HTML pUBLIC "-//W3C//DTD HTML 4.01 transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<meta name="generator" content="pSpad editor, www.pspad.com">
<title></title>
<style>
body{background-image:url(http://byaki.net/uploads/posts/2008-02/1204270244_1.jpg); background-repeat: no-repeat;}
p{color:red ; }
h3{color:GreenYellow;}
h2{color:Gold;}
table {border:darkred solid 1px;}
td { text-align:center;width:40px;background-color:lightgrey;border:darkred solid 1px; }
td.one {font-weight:bold; background-color: grey; }
td.two {font-weight:bold; background-color: red; }
td.three {font-weight:bold; background-color: darkred; color:white; }
</style>
</head>
<body>
<script type="text/javascript">
var monthName= new Array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь");
var dayName = new Array("Вс","Пн","Вт","Ср","Чт","Пт","Сб");
time = new Date();
//выводим шапку с названием текущего месяца
document.write("<h3 align=center ><FONT SIZE=3>Календарь на текущий месяц:"+" "+"<h2>" +monthName[time.getMonth()]+ "</h2>" + "</FONT></h3><p ALIGN=CENTER>");
/////// находим какой день первый в этом месяце
day = time.getDay() ;
result = (time.getDate() % 7)-1 ;
if (result > day) { day += 7 ; }
firstDay = day - result ;
// document.write(firstDay) ;
// находим сколько дней в этом месяце
if (time.getMonth() == 1) {
// добавляем код если год високосный
thisYear = time.getYear() + 1900
if (thisYear % 4 == 0) {
if (thisYear % 100 == 0) {
if (thisYear % 400 == 0) { daysInMonth = 29 }
else { daysInMonth = 28 }
}
else { daysInMonth = 29 }
}
else { daysInMonth = 28 }
}
else {
if (time.getMonth() == 0 || time.getMonth() == 2 || time.getMonth() == 4 || time.getMonth() == 6 || time.getMonth() == 7 || time.getMonth() == 9 || time.getMonth() == 11) {
daysInMonth = 31 }
else { daysInMonth = 30 }
}
////////////////////////////
document.write(" <table align='center' cellpadding='5' border='0' cellspacing='0' style='filter:alpha(opacity=60); opacity:0.5'><tr>")
//рисуем заголовки дней недели. выходные красным цветом
for (var s=0; s<7; s++)
{ if (s==0 || s==6){document.write("<td class='two'>"+dayName[s]+"</td>");}else
document.write("<td class='one'>"+dayName[s]+"</td>");
}
document.write("</tr>")
//рисуем пустые дни
for (i = 0; i < firstDay; i++) {
document.write("<td >  </td>")
}
// рисуем дни
d = firstDay
for (i = 1; i <= daysInMonth; i++) {
if (!(d < 7)) {
document.write("<tr>")
d = 0 }
if (i == time.getDate()) { //показываем сегодняшний день
dispDay = document.write("<td style=color:red class='three'>"+time.getDate()+"</td>"); //ВОТ ТУТ КОСЯК - ЕСЛИ УБРАТЬ ДОКУМЕНТ.ВРАЙТ И ТЕГИ ТО ВЫВОДИТ НОРМАЛЬНО
}
else {dispDay=document.write("<td ><p ALIGN=CENTER>" + i + "</p></td>")}
//alert(dispDay);//раскомментируй и увидишь почему undefined было
d++
}
//рисуем пустые клетки в полседние пустые дни
if (d < 7) {
for (i = d; i < 7; i++) {
document.write("<td >  </td>")
}
}
document.write("</tr></TABLE>")
</script>
</body>
</html>
Видишь что такое dispDay? это операция вывода на экран а ты её в переменную пытаешься вывести.
Последний раз редактировалось dr.Web; 23.03.2010 в 03:02..
|
|
|

23.03.2010, 12:07
|
|
Moderator - Level 7
Регистрация: 05.11.2007
Сообщений: 894
С нами:
9744746
Репутация:
1474
|
|
ну от undefined я вчера избавился убрав document.write. получилось
dispDay = "<td class='three'>"+i+"</td>";
однако теперь пропускает клетку и выходит за таблицу. задача выделить клетку с сегодняшней датой. как?
|
|
|

24.03.2010, 00:36
|
|
Участник форума
Регистрация: 02.02.2009
Сообщений: 146
С нами:
9090281
Репутация:
43
|
|
Сообщение от оlbaneс
ну от undefined я вчера избавился убрав document.write. получилось
однако теперь пропускает клетку и выходит за таблицу. задача выделить клетку с сегодняшней датой. как?
яж тебе готовый рабочий код с выделением дня выложил. чем он тебе не понравился?
|
|
|

24.03.2010, 14:22
|
|
Moderator - Level 7
Регистрация: 05.11.2007
Сообщений: 894
С нами:
9744746
Репутация:
1474
|
|
Сообщение от dr.Web
яж тебе готовый рабочий код с выделением дня выложил. чем он тебе не понравился?
ахтыж. не заметил что ты код исправил и вставил только алерт.
в яваскрипт переменные же можно переиначивать вот из за этого и ошибся.
+
|
|
|

23.03.2010, 14:10
|
|
Новичок
Регистрация: 07.03.2010
Сообщений: 4
С нами:
8517260
Репутация:
0
|
|
а причем тут это? что-то я слабо себе представляю как эти функции обработают мой текст и выдадут мне сообщение: "этот текст написан капслоком"
|
|
|

23.03.2010, 17:28
|
|
Участник форума
Регистрация: 29.07.2008
Сообщений: 128
С нами:
9360320
Репутация:
34
|
|
Подскажите плиз, есть некий список <select name="algo"> <option что-то там> и есть чуть ниже <font id="example">какойто текст</font>. Так вот надо при выборе какого-то <option> засунуть текст в example)))
<script type="text/javascript">
function zamena(id,text) {
document.getElementById(id).innerHTML = text;
}
</script>
<select name="algo">
<option value="1223" class="area" onclick="javasript:zamena('example',this.value);" />
</select>
<font id="example">Текст для замены</div>
выше перечисленное не работает(
|
|
|

23.03.2010, 17:44
|
|
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
С нами:
11058146
Репутация:
4536
|
|
PHP код:
<script type="text/javascript">
function zamena(id,text)
{
document.getElementById(id).innerHTML = text;
}
</script>
<select name="algo" onchange="zamena('example',this.options[this.selectedIndex].value);">
<option value="test">test</option>
<option value="1223" class="area">replace</option>
</select>
<font id="example">Текст для замены</div>

|
|
|

23.03.2010, 17:52
|
|
Новичок
Регистрация: 07.03.2010
Сообщений: 4
С нами:
8517260
Репутация:
0
|
|
сцуко, не успел  и все таки как текст написанный большими буквами определять скриптом?
|
|
|

23.03.2010, 17:55
|
|
Участник форума
Регистрация: 29.07.2008
Сообщений: 128
С нами:
9360320
Репутация:
34
|
|
GreenBear спасибо)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|