С JavaScript я почти не знаком. Но мне понадобилось вставить в форму на веб странице поле ввода даты, причем полей два. Дата должна вводиться только в определенном формате: дд/мм/гггг. Страницу делал на PHP, а для ввода даты использовал найденный в Инете скрипт, написанный на JavaScript. Вот код страницы:
<script language="JavaScript" src="calendar_us.js"></script>
<link rel="stylesheet" href="calendar.css">
</head>
<body>
<?php
include "TcLib.php";
session_start();
$conn = connectDB($_SESSION['userlogin'], $_SESSION['passw']);
if (!$conn) {
print "Поздравляем, вы подключились к базе данных!\n";
}
switch($tableName) {
case "Prj":
if ( empty($Pname) ) {
editPrj($keyVal);
} else {
UpdPrj();
Ret2main();
}
break;
// case "Units":
// $sql = "SELECT * FROM $table;";
// break;
case "User":
if ( empty($Uname) ) {
editUsers();
} else {
UpdUser();
Ret2main();
}
break;
case "Tasks":
if ( empty($Tdeskr) ) {
editTask($keyVal);
} else {
UpdTask();
Ret2main();
}
default:
print $tableName;
print " - Такой таблицы нет!";
print '<br>';
}
function editPrj($keyVal) {
global $tableName, $Pname, $startd, $stopd;
setEncoding('cp1251');
$sql = "SELECT * FROM Prj WHERE Prj_Id = $keyVal;";
$result = getquery($sql);
if ($result) {
$entry = mysql_fetch_assoc($result);
$Pr_name = $entry['Prj_name'];
$startd = explode("-", $entry['Start_D']);
$strd="$startd[1]/$startd[2]/$startd[0]";
$stopd = explode("-", $entry['Stop_D']);
$stpd="$stopd[1]/$stopd[2]/$stopd[0]";
print <<<HERE
<br>
<h3><div align="center"><font size="+1" color="#0000FF" face="Comic Sans MS">Введите название проекта</font></div></h3>
<div align="center"><form name="prinput" method="post">
<input type="text" name="Pname" value="$Pr_name">
<br>
<h3><div align="center"><font size="+1" color="#0000FF" face="Comic Sans MS">Введите дату начала проекта в виде:</font></div></h3>
<h3><div align="center"><font size="+1" color="#0000FF" face="Comic Sans MS">Год/месяц/день (цифры разделенные прямым слешем)</font></div></h3>
<div align="center"> <input type="text" name="startd" value="$strd" />
<script language="JavaScript">
new tcal ({
// form name
'formname': 'prinput',
// input name
'controlname': 'startd'
});
</script>
</form>
<br>
<h3><div align="center"><font size="+1" color="#0000FF" face="Comic Sans MS">Введите дату завершения проекта в виде:</font></div></h3>
<h3><div align="center"><font size="+1" color="#0000FF" face="Comic Sans MS">Год/месяц/день (цифры разделенные прямым слешем)</font></div></h3>
<input type="text" name="stopd" value="$stpd" />
<script language="JavaScript">
new tcal ({
// form name
'formname': 'prinput',
// input name
'controlname': 'stopd'
});
</script>
<br>
<input type="hidden" name="tableName" value="$tableName">
<br>
<input type="submit" value = "Сохранить">
</form></div>
<br>
HERE;
}
else { print "Запрос $sql не удался!"; }
}
Код страницы привел не весь - слишком длинно было бы. Проблема в теле функции editPrj($keyVal). Там есть два скрипта для вывода календарика при добавлении (редактировании) даты. Проблема в том, что первый скрипт работает - то есть при клике на иконке календаря календарик открывается, и выбранная дата добавляется в текстовое поле. А вот второй скрипт не работает - то есть иконка календаря не активна. Синтаксис у обоих скриптов вроде одинаковый. Подскажите пожалуйста, почему второй скрипт не работает?