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

Форум PHP

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

 

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

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

тема: Вывод ссылки из календаря на php на другую страницу
 
 автор: Vera   (02.03.2009 в 18:17)   письмо автору
 
 

ПОМОГИТЕ РАЗОБРАТЬСЯ!!!
Календарь вставляется в шаблон отдельным файлом. При выводе даты, на которую есть события происходит переход на заданную страницу, а при при выборе следующего или предыдущего месяца происходит вывод календаря на той странице, на которой остановился пользователь, происходят ошибки.
 <? if (isset($_GET['date'])) echo "<HTML><HEAD>
          <META HTTP-EQUIV='Refresh' CONTENT='0; URL=daty.php?id="
.$_GET['date']."'>
          </HEAD>"

 
 
$result=mysql_query("SELECT DISTINCT DATE_FORMAT(daty, '%Y-%m-%d') as date_format FROM sobyt");  
while(
$row=mysql_fetch_array($result))  
{  
  
$test[] = $row['date_format'];  
}  
//функция рисования календаря  
my_calendar($test);  

                                                       
?>
  <? 
function my_calendar($fill='') { 
  
$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 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;
?>
  <br>
  <table  border="0" cellpadding="0" cellspacing="0" id="calendar">
    <caption>
    <a href="<? echo $prev?>">&lt;&lt;&lt; </a><? echo $month_names[$m-1]," ",$y ?><a href="<? echo $next?>"> &gt;&gt;&gt;</a>
    </caption>
    <thead>
      <tr>
        <th scope="col" class="mon">Пн</th>
        <th scope="col" class="tue">Вт</th>
        <th scope="col" class="wed">Ср</th>
        <th scope="col" class="thu">Чт</th>
        <th scope="col" class="fri">Пт</th>
        <th scope="col" class="sat">Сб</th>
        <th scope="col" class="sun">Вс</th>
      </tr>
    </thead>
    <tbody>
      <? 
  
for($d=$start;$d<=$end;$d++) { 
    if (!(
$i++ % 7)) echo " <tr>\n";
    echo 
'  <td>';
    if (
$d OR $d $day_count) {
      echo 
"&nbsp";
    } else {
      
$now="$y-$m-".sprintf("%02d",$d);
      if (
is_array($fill) AND in_array($now,$fill)) {
    
    
    
    
    
    
        
         echo 
'<b><a href="'.$_SERVER['PHP_SELF'].'?date='.$now.'">'.$d.'</a></b>'
           
              
           
        
 } else {
    echo 
$d;
 }
  } 
    echo 
"</td>\n";
    if (!(
$i 7))  echo " </tr>\n";
  } 
?>
    </tbody>
  </table>
  <? ?>

  Ответить  
 
 автор: Trianon   (02.03.2009 в 19:07)   письмо автору
 
   для: Vera   (02.03.2009 в 18:17)
 

то есть вне шаблона скрипт работает?

  Ответить  
 
 автор: Vera   (02.03.2009 в 19:20)   письмо автору
 
   для: Trianon   (02.03.2009 в 19:07)
 

Да работает.

еще хотелось бы сделать ссылку на год и месяц


чтобы на daty.php появлялись список событий на выбранный месяц

  Ответить  
 
 автор: Vera   (02.03.2009 в 22:15)   письмо автору
 
   для: Vera   (02.03.2009 в 19:20)
 

Помогите, пожалуйста!

  Ответить  
 
 автор: Trianon   (02.03.2009 в 22:22)   письмо автору
 
   для: Vera   (02.03.2009 в 22:15)
 

Во-первых, Вы не описали, в чем наблюдаются ошибки.
Во вторых, дело не в календаре. Явно скрипт, который его включает, либо где-то по дороге гробит параметры даты, либо просто не рассчитан, что его будут вызывать по имени файла без параметров самого скрипта.
Ничего этого, не зная как устроено взаимодействие скрипта с календарем, не починить.

А чтобы сделать вывод событий, нужно знать какие строки в таблице sobyt лежат, и как их отобразить.

  Ответить  
 
 автор: serjinio   (04.03.2009 в 00:32)   письмо автору
 
   для: Vera   (02.03.2009 в 19:20)
 

Странно ,а у меня меня число месяца не выделяется.. из БД извлекается
$test[] = $row['date_format']; // 2009-03-01

заменил if (is_array($fill) AND in_array($now,$fill))
на if ($now==$fill)
все стало выделяться /index.php?date=2009-03-03

  Ответить  
Rambler's Top100
вверх

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