28.04.2013, 22:19
|
Кандидат Javascript-наук
|
|
Регистрация: 20.09.2011
Сообщений: 140
|
|
склонение в зависимости от числа
Здравствуйте
Есть форма обратной связи (php)
после отправки письма использую js редирект c визуальным счетчиком обратного отсчета
<script type="text/javascript">
var i = 5;
var str = i;
$('#counter').text(str);
function time(){
document.getElementById("time").innerHTML = i;
i--;
if (i < 0) location.href = "?page=oplata_";
}
time();
setInterval(time, 1000);
</script>
echo '<h3 style="padding: 0px 5px 15px 5px; text-align: center; font-size: 14px; font-weight: bold; color: #5B3E00; width: 100%;">Сообщение успешно отправлено!<br><br>через <font color="red"><b><span id="time" id="counter">5</b></span></font> секунд страница обновится автоматически</h3>';
как можно дополнить js, чтобы слово СЕКУНД в зависимости от числа склонялась на - секунда, секунды
в сети много информации как это сделать, например
function declOfNum(number, titles)
{
cases = [2, 0, 1, 1, 1, 2];
return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];
}
но у меня ничего не получается
Последний раз редактировалось sashgera, 28.04.2013 в 22:54.
|
|
28.04.2013, 23:37
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Воспользуйтесь поиском форума, гугла -тема неоднократно уже была, как и её решения
|
|
29.04.2013, 00:09
|
Кандидат Javascript-наук
|
|
Регистрация: 20.09.2011
Сообщений: 140
|
|
Сообщение от dmitriymar
|
Воспользуйтесь поиском форума, гугла -тема неоднократно уже была, как и её решения
|
внимательней читайте что я написал - искал, нашел, но ничего не получается. форум тогда зачем? Я просто прошу о помощи
|
|
29.04.2013, 00:38
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
|
|
29.04.2013, 01:29
|
Кандидат Javascript-наук
|
|
Регистрация: 20.09.2011
Сообщений: 140
|
|
Сообщение от nasqad
|
да нет вы ничего не поняли, человек не знает javascript, он просто хочет чтобы вы сделали это за него
|
Вы совершенно правы, я не знаю js, это видно из сказанного мною выше, и поэтому прошу помощи – дописать несколько строк. Когда увижу результат, я наверное пойму как это сделать. Поверьте, я целый день пытаюсь сделать эти склонения. Свои творения я показывать не хочу (не работают)
|
|
29.04.2013, 08:06
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от sashgera
|
Вы совершенно правы, я не знаю js, это видно из сказанного мною выше, и поэтому прошу помощи – дописать несколько строк. Когда увижу результат, я наверное пойму как это сделать. Поверьте, я целый день пытаюсь сделать эти склонения. Свои творения я показывать не хочу (не работают)
|
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".
Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.
|
|
29.04.2013, 21:13
|
Кандидат Javascript-наук
|
|
Регистрация: 20.09.2011
Сообщений: 140
|
|
Сообщение от dmitriymar
|
Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.
|
Я не прошу что-то сделать за меня с нуля. Я уже выложил таймер и просил помочь его усовершенствовать. Но тем не менее я понял Вас – пожалуйста, посмотрите и если невлом, помогите:
<script type="text/javascript">
var i = 5;
var str = i;
$('#counter').text(str);
function time ()
{
var declOfNum(seconds, ['секунда', 'секунды', 'секунд']);
{
var cases = [2, 0, 1, 1, 1, 2];
return titles[
(seconds % 100 > 4 && seconds % 100 < 20)
?
2
:
cases[(seconds % 10 < 5) ? seconds % 10 : 5]
];
}
document.getElementById ('time').innerHTML = declOfNum [i--];
if (i < 0) location.href = "?page=oplata_";
}
time();
setInterval(time, 1000);
</script>
echo 'Сообщение успешно отправлено!<br>через <span id="time" id="counter">5</span> страница обновится автоматически';
|
|
29.04.2013, 21:34
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
sashgera,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>Сообщение успешно отправлено!<br>через <span id="time" id="counter">5</span> страница обновится автоматически;
<script type="text/javascript">
var i = 5;
var str = i;
//$('#counter').text(str);
function declOfNum(number, titles)
{
cases = [2, 0, 1, 1, 1, 2];
return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];
}
function time ()
{
document.getElementById ('time').innerHTML = --i+" "+declOfNum (i, ['секунду', 'секунды', 'секунд']);
//if (i < 0) location.href = "?page=oplata_";
}
//time();
setInterval(time, 1000);
</script>
</body>
</html>
|
|
29.04.2013, 22:59
|
Кандидат Javascript-наук
|
|
Регистрация: 20.09.2011
Сообщений: 140
|
|
рони, большое спасибо! Все работает! Только один момент смущает – после того, когда таймер доходит до нуля, должен быть редирект на страницу. Но у меня почему-то после нуля таймер показывает -1 undefined, а потом только редирект…
Если объясните почему так, буду очень благодарен
|
|
29.04.2013, 23:27
|
Кандидат Javascript-наук
|
|
Регистрация: 20.09.2011
Сообщений: 140
|
|
рони,
кажется, я нашел ответ на свой вопрос, сделал так
if (i < 1) location.href = "?page=oplata_";
|
|
|
|