Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> календарь с сылкой помогите ) 
:(
    Опции темы
IceWall
Дата 5.5.2009, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Помогите пожалуйста. Буду очень благодарен. Имеется 2 файла: index.html и calendar.php. Помогите сделать так, чтобы calendar.php возвращал значение не на index.html, а сохранялся в calendar.php, и чтобы желательно ее можно было вывести в качестве какой нить переменной. Извените но я очень тупой, не могу не как понять =((. Заранее спасибо кто чем поможет.

Код

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Календарь</title>

<script language="JavaScript" type="text/javascript">
function outCalendar(destField, beginValue) {
    window.open('calendar.php?date=' + beginValue, 'winCalendar', 'width=340,height=200');
    dateField = eval(destField);
}
</script>

</head>

<body>
<table border="0" cellspacing="20" cellpadding="0">
  <tr>
    <td align="left" valign="middle"><a href="JavaScript: outCalendar(tfDate, tfDate.value);">Календарь</a></td>
    <td align="left" valign="middle">
      <input name="tfDate" type="text" id="tfDate" value="" size="12" />
    </td>
    <td align="left" valign="middle"><a href="JavaScript: outCalendar(tfDate, tfDate.value);"><img src="calendar.gif" width="16" height="16" border="0" align="middle" title="Календарь" /></a></td>
  </tr>
</table>
</body>
</html>


Код

<?php 
$controlDate = "0";
if (isset($_GET['date'])) {
  $controlDate = (get_magic_quotes_gpc()) ? $_GET['date'] : addslashes($_GET['date']);
  if ($controlDate == "") {
    $controlDate = "0";
  }
}

buildCalendar($controlDate);

function getMonthName($month) {
    if ($month == 1) { return "январь"; }
    elseif ($month == 2) { return "февраль"; }
    elseif ($month == 3) { return "март"; }
    elseif ($month == 4) { return "апрель"; }
    elseif ($month == 5) { return "май"; }
    elseif ($month == 6) { return "июнь"; }
    elseif ($month == 7) { return "июль"; }
    elseif ($month == 8) { return "август"; }
    elseif ($month == 9) { return "сентябрь"; }
    elseif ($month == 10) { return "октябрь"; }
    elseif ($month == 11) { return "ноябрь"; }
    elseif ($month == 12) { return "декабрь"; }
    else { return "неизвестно"; }
}

function buildCalendar($controlDate) {
  $controlDate = strtotime($controlDate);
  if ($controlDate < 0) { $controlDate = strtotime("0"); }
  $curDay = date('d', $controlDate);
  $curMonth = date('m', $controlDate);
  $curYear = date('Y', $controlDate);
  
  // Вычисляем число дней в текущем месяце
  $dayofmonth = date('t', $controlDate);
  // Счётчик для дней месяца
  $day_count = 1;

  // 1. Первая неделя
  $num = 0;
  for($i = 0; $i < 7; $i++) {
    // Вычисляем номер дня недели для числа
    $dayofweek = date('w', mktime(0, 0, 0, date('m', $controlDate), $day_count, date('Y', $controlDate)));
    // Приводим к числа к формату 1 - понедельник, ..., 6 - суббота
    $dayofweek = $dayofweek - 1;
    if($dayofweek == -1) $dayofweek = 6;

    if($dayofweek == $i) {
      // Если дни недели совпадают,
      // заполняем массив $week
      // числами месяца
      $week[$num][$i] = $day_count;
      $day_count++;
    }
    else
    {
      $week[$num][$i] = "";
    }
  }

  // 2. Последующие недели месяца
  while(true) {
    $num++;
    for($i = 0; $i < 7; $i++) {
      $week[$num][$i] = $day_count;
      $day_count++;
      // Если достигли конца месяца - выходим
      // из цикла
      if($day_count > $dayofmonth) break;
    }
    // Если достигли конца месяца - выходим
    // из цикла
    if($day_count > $dayofmonth) break;
  }

  // 3. Выводим содержимое массива $week
  // в виде календаря
  // Выводим таблицу
  
  echo "<center>";
  echo "<br/>";
  echo "<table border='0' cellpadding='3' cellspacing='0'>";
  echo "<tr>";
  
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-LEFT: #bbbbbb 1px solid; BORDER-TOP: #bbbbbb 1px solid; BORDER-BOTTOM: #bbbbbb 1px solid'><a href='calendar.php?date=".($curYear - 1)."-".$curMonth."-".$curDay."' title='Предыдущий год'><strong>&laquo;</strong></a></td>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-TOP: #bbbbbb 1px solid; BORDER-BOTTOM: #bbbbbb 1px solid'><a href='calendar.php?date=".$curYear."-".($curMonth - 1)."-".$curDay."' title='Предыдущий месяц'><strong>‹</strong></a></td>";
  echo "<td colspan='3' align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-TOP: #bbbbbb 1px solid; BORDER-BOTTOM: #bbbbbb 1px solid'><em><strong>".strtolower(getMonthName(date('m', $controlDate))." ".date('Y', $controlDate))."</strong></em></td>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-TOP: #bbbbbb 1px solid; BORDER-BOTTOM: #bbbbbb 1px solid'><a href='calendar.php?date=".$curYear."-".($curMonth + 1)."-".$curDay."' title='Следующий месяц'><strong>›</strong></a></td>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-TOP: #bbbbbb 1px solid; BORDER-BOTTOM: #bbbbbb 1px solid; BORDER-RIGHT: #bbbbbb 1px solid'><a href='calendar.php?date=".($curYear + 1)."-".$curMonth."-".$curDay."' title='Следующий год'><strong>&raquo;</strong></a></td>";
  
  echo "</tr>";
  
  echo "<tr>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-LEFT: #bbbbbb 1px solid; BORDER-BOTTOM: #bbbbbb 1px solid'><font color=navy>Пнд</font></td>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-BOTTOM: #bbbbbb 1px solid'><font color=navy>Втр</font></td>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-BOTTOM: #bbbbbb 1px solid'><font color=navy>Срд</font></td>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-BOTTOM: #bbbbbb 1px solid'><font color=navy>Чтв</font></td>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-BOTTOM: #bbbbbb 1px solid'><font color=navy>Птн</font></td>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-BOTTOM: #bbbbbb 1px solid'><font color=red>Сбт</font></td>";
  echo "<td align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-RIGHT: #bbbbbb 1px solid; BORDER-BOTTOM: #bbbbbb 1px solid'><font color=red>Вск</font></td>";
  echo "</tr>";
  
  for($i = 0; $i < count($week); $i++) {
    echo "<tr>";
    for($j = 0; $j < 7; $j++) {
      
      if ($j == 0) {
        $strBorder = "style='BORDER-LEFT: #bbbbbb 1px solid'";
      } elseif ($j == 6) {
        $strBorder = "style='BORDER-RIGHT: #bbbbbb 1px solid'";;
      } else {
        $strBorder = "";
      }
        
      if(!empty($week[$i][$j])) {    
        
        $checkDay = date('d');
        $checkMonth = date('m');
        $checkYear = date('Y');
        
        // Выделяем "сегодняшнее" число
        if (($week[$i][$j] == $checkDay) and ($curMonth == $checkMonth) and ($curYear == $checkYear)) {
          $outDay = "<strong>".$week[$i][$j]."</strong>";
        } else {
          $outDay = $week[$i][$j];
        }
        
        // Выделяем текущее число
        if ($week[$i][$j] == $curDay) {
          $outColor = "#CCEEFF";
        } else {
          $outColor = "#FFFFFF";
        }
        
        $curDay1 = $week[$i][$j];
        if ($curDay1 < 9) { $curDay1 = "0".$curDay1; }
        
        // Если имеем дело с субботой и воскресенья
        // подсвечиваем их
        if($j == 5 || $j == 6) {
          echo "<td align='right' valign='middle' bgcolor='".$outColor."' ".$strBorder.">&nbsp;&nbsp;&nbsp;<a href=\"JavaScript: returnDate('".$curYear."-".$curMonth."-".$curDay1."')\"><font color=red>".$outDay."</font></a>&nbsp;&nbsp;&nbsp;</td>";
        } else {
          echo "<td align='right' valign='middle' bgcolor='".$outColor."' ".$strBorder.">&nbsp;&nbsp;&nbsp;<a href=\"JavaScript: returnDate('".$curYear."-".$curMonth."-".$curDay1."')\"><font color=navy>".$outDay."</font></a>&nbsp;&nbsp;&nbsp;</td>";
        }
      }
      else echo "<td ".$strBorder.">&nbsp;</td>";
    }
    echo "</tr>";
  } 
  echo "<tr>";
  echo "<td colspan='7' align='center' valign='middle' bgcolor='#f2f2f2' style='BORDER-LEFT: #bbbbbb 1px solid; BORDER-BOTTOM: #bbbbbb 1px solid; BORDER-RIGHT: #bbbbbb 1px solid'><font color=silver>&copy; elo 2006</font></td>";
  echo "</tr>";
  echo "</table>";
  echo "</center>";
  echo "<br/>";
}
?>

<html>
<style type="text/css">
<!--
body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
}
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
}
a:hover {
    text-decoration: none;
}
a:active {
    text-decoration: none;
}
body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
-->
</style><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Calendar</title>

<script language="JavaScript" type="text/javascript">

function returnDate(retDate) {
    if (window.opener != null) {
        window.opener.dateField.value = retDate;
    }
    window.close();
}

</script>

</head>
<body>
</body>
</html>


PM MAIL   Вверх
InvalidProperty
Дата 5.5.2009, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

Репутация: 2
Всего: 9



Цитата(IceWall @  5.5.2009,  16:08 Найти цитируемый пост)
Извените но я очень тупой, не могу не как понять =((
  smile 

жжешь.

returnDate() из calendar.php и так тебе дату возвращает. чтобы не выводилось ничего на index.html, не вызывай ничего из index.html


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
IceWall
Дата 5.5.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



InvalidProperty,  Спасибо, но все же можеш объяснить, каким образом вызвать returnDate(), чтобы выводилось строка типа 2007-08-09
PM MAIL   Вверх
IceWall
Дата 6.5.2009, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Ап темке, все еще не разобрался как вывести переменную, кто может помогите пожалуйста. 
PM MAIL   Вверх
InvalidProperty
Дата 6.5.2009, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

Репутация: 2
Всего: 9



IceWall, постой... Если ты всего лишь хочешь, чтобы тебе выводилась дата в формате YYYY-MM-DD, то зачем так извращаться?
Код

echo date('Y-m-D');

читай маны


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
IceWall
Дата 6.5.2009, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Нет, нужно чтобы передавалась не текущая дата, а дата которую была выбрана, она хранится в этой переменной returnDate('".$curYear."-".$curMonth."-".$curDay1."') , но я не знаю как ее вызвать. 
PM MAIL   Вверх
InvalidProperty
Дата 6.5.2009, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

Репутация: 2
Всего: 9



объясни, что конкретно тебе нужно. Тебе нужно, чтобы при вызове calendar.php с какой-либо страницы, на которой он установлен, у тебя была возможность не только вывести выбранную дату на данную страницу, но еще и сохранить ее в какой-либо переменной или что-то другое?


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
IceWall
Дата 6.5.2009, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Я хочу поместить этот календарь на страницу, на  которой будет выложенная таблица, и выборка из бд  будет вестись по дате. Изначально это дата echo date('Y-m-D'), но если пользователь выбирают другую дату в календаре, то хочу чтобы на эту же страницу передавалась в какой нить переменной, что то типа $date,  и далее уже обновить эту страницу, с выборкой из бд но уже по выбранной дате пользователем, тоесть переменной $date.
Помоги пожалуста =)
Мож есть какой нить календарь получше? с такими ссылками?

Это сообщение отредактировал(а) IceWall - 6.5.2009, 08:56
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0626 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.