Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.04.2013, 22:19
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 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.
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2013, 23:37
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Воспользуйтесь поиском форума, гугла -тема неоднократно уже была, как и её решения
Ответить с цитированием
  #3 (permalink)  
Старый 29.04.2013, 00:09
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

Сообщение от dmitriymar Посмотреть сообщение
Воспользуйтесь поиском форума, гугла -тема неоднократно уже была, как и её решения
внимательней читайте что я написал - искал, нашел, но ничего не получается. форум тогда зачем? Я просто прошу о помощи
Ответить с цитированием
  #4 (permalink)  
Старый 29.04.2013, 00:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

sashgera,
Помогите с тернарным оператом
Ответить с цитированием
  #5 (permalink)  
Старый 29.04.2013, 01:29
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

Сообщение от nasqad Посмотреть сообщение
да нет вы ничего не поняли, человек не знает javascript, он просто хочет чтобы вы сделали это за него
Вы совершенно правы, я не знаю js, это видно из сказанного мною выше, и поэтому прошу помощи – дописать несколько строк. Когда увижу результат, я наверное пойму как это сделать. Поверьте, я целый день пытаюсь сделать эти склонения. Свои творения я показывать не хочу (не работают)
Ответить с цитированием
  #6 (permalink)  
Старый 29.04.2013, 08:06
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от sashgera
Вы совершенно правы, я не знаю js, это видно из сказанного мною выше, и поэтому прошу помощи – дописать несколько строк. Когда увижу результат, я наверное пойму как это сделать. Поверьте, я целый день пытаюсь сделать эти склонения. Свои творения я показывать не хочу (не работают)
Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.
Ответить с цитированием
  #7 (permalink)  
Старый 29.04.2013, 21:13
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 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>  страница обновится автоматически';
Ответить с цитированием
  #8 (permalink)  
Старый 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>
Ответить с цитированием
  #9 (permalink)  
Старый 29.04.2013, 22:59
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

рони, большое спасибо! Все работает! Только один момент смущает – после того, когда таймер доходит до нуля, должен быть редирект на страницу. Но у меня почему-то после нуля таймер показывает -1 undefined, а потом только редирект…
Если объясните почему так, буду очень благодарен
Ответить с цитированием
  #10 (permalink)  
Старый 29.04.2013, 23:27
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

рони,
кажется, я нашел ответ на свой вопрос, сделал так
if (i < 1) location.href = "?page=oplata_";
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
html код в зависимости от выбора radio Findail Общие вопросы Javascript 6 30.03.2013 12:53
Расчет числа последовательностей Slavenin Оффтопик 10 20.03.2012 13:58
Высота div в зависимости от разрешения dm_013 Javascript под браузер 2 17.10.2011 21:53
Как в общем меню для всех страниц поменять класс определенного пункта в зависимости о phenom Элементы интерфейса 2 08.04.2011 11:09
число 76.4705882.. сделать 76.47? (числа всегда разные) TongaG Ваши сайты и скрипты 3 19.01.2010 07:35