Не работает навигация календаря на ajax

E
На сайте с 04.02.2014
Offline
8
638

Ребят, помогите!

Сделали архив в виде календаря.

На календаре есть ссылки: предыдущий и следующий месяц.

Хотим, чтобы при переходе по этим ссылкам страница не перегружалась, а менялся сам календарь.

Применили ajax.

Но при переходе по ссылке подгружается не календарь, а вся страница (т.е. в левом блоке сайта вместо календаря появляется еще одна целая страница сайта).

Структура такая:

Основная страница - news_razdel.php

В ней подключена левая колонка - <? include ("blocks/left.php"); ?>

В левой колонке подключен файл календаря - <? include ("calendar.php"); ?> в котором поместили такой код:

<script>  

function showContent(link) {

var cont = document.getElementById('contentBody');


var http = createRequestObject();
if( http )
{
http.open('get', link);
http.onreadystatechange = function ()
{
if(http.readyState == 4)
{
cont.innerHTML = http.responseText;
}
}
http.send(null);
}
else
{
document.location = link;
}
}

// создание ajax объекта
function createRequestObject()
{
try { return new XMLHttpRequest() }
catch(e)
{
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e)
{
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}
}
</script>


<?
if (isset($_GET['date'])) echo "выбрана дата ".$_GET['date'];
?>


<?
$month_names=array("январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь");
if (isset($_GET['y'])) $y=$_GET['y'];
if (isset($_GET['m'])) $m=$_GET['m'];
if (isset($_GET['date']) AND strstr($_GET['date'],"-")) list($y,$m)=explode("-",$_GET['date']);
if (!isset($y) OR $y < 1970 OR $y > 2037) $y=date("Y");
if (!isset($m) OR $m < 1 OR $m > 12) $m=date("m");

$month_stamp=mktime(0,0,0,$m,1,$y);
$day_count=date("t",$month_stamp);
$weekday=date("w",$month_stamp);
if ($weekday==0) $weekday=7;
$start=-($weekday-2);
$last=($day_count+$weekday-1) % 7;
if ($last==0) $end=$day_count; else $end=$day_count+7-$last;
$today=date("Y-m-d");
$prev=date('?\m=m&\y=Y',mktime (0,0,0,$m-1,1,$y));
$next=date('?\m=m&\y=Y',mktime (0,0,0,$m+1,1,$y));
$i=0;
?>


<table border=1 cellspacing=0 cellpadding=2>
<tr>
<td colspan=7>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr>
<!--<td align="left"><a href="<? echo $prev ?>">&lt;&lt;&lt;</a></td>-->
<td align="left"><a href="javascript:void(0);" onClick="showContent('<? echo $prev ?>')">&lt;&lt;&lt;</a></td>
<td align="center"><? echo $month_names[$m-1]," ",$y ?></td>
<!--<td align="right"><a href="<? echo $next ?>">&gt;&gt;&gt;</a></td>-->
<td align="right"><a href="javascript:void(0);" onClick="showContent('<? echo $next ?>')">&gt;&gt;&gt;</a></td>
</tr>
</table>
</td>
</tr>
<tr><td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td><td>Вс</td><tr>


<?
for($d=$start;$d<=$end;$d++) {
if (!($i++ % 7)) echo " <tr>\n";
echo " <td align='center'>";
if ($d < 1 OR $d > $day_count) {
echo "&nbsp";
} else {
$now="$y-$m-".sprintf("%02d",$d);

$result_rr00 = mysql_query("SELECT * FROM news WHERE date='$now'",$db);
$myrow_rr00 = mysql_fetch_array($result_rr00);

if (isset($myrow_rr00['date'])) {
echo "<b><a href='http://localhost/vesti7days.ru/date.php?date=$now'>$d</a></b>";
} else {
echo $d;
}
}
echo "</td>\n";
if (!($i % 7)) echo " </tr>\n";
}
?>


</table>

<div id="contentBody">
</div>

Пример на который рассчитываем (в левой колонке):

http://www.mk.ru/news/

---------- Добавлено 29.01.2015 в 21:41 ----------

Ну где все спецы подевались????????????????????????????????????????????:confused:

E
На сайте с 04.02.2014
Offline
8
#1

Прошу админов удалить тему с сообщением.

Спасибо

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий