Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать select с сотней опций, года 1900 - 2000 
:(
    Опции темы
noNick
Дата 11.3.2008, 04:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



нужно вывести года в селекти в виде "1900" ,  в селекте нужно что б отображалось года с 1900 по 2000 год, с помощью оператора for .поможете ? 
PM MAIL   Вверх
bars80080
Дата 11.3.2008, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml " lang="en" xml:lang="en">
<head>
  <title>dinamic select</title>
  <meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
  <meta http-equiv="Content-Language" content="ru-ru" />
<style type="text/css">
* { margin: 0; padding: 0; }
#main { position: relative; left: 100px; top: 100px; }
</style>
<script type="text/javascript"><!--
function recity() {
    var sselect = document.forms[0].god;
    for(i = 1900; i < 2001; i++) { sselect.options[i - 1900] = new Option(i, i); }}
//-->
</script>
</head>
<body onload="recity()"><div id="main">
<form>
<select name="god"><option></option></select>
</form>
</div>
</body></html>

PM MAIL WWW   Вверх
smartov
Дата 11.3.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



bars80080, форматирование кода неудобное и обращение к элементу не по DOM стандарту, хотя и все верно.

noNick, 
ИМХО лучше так

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml " lang="en" xml:lang="en">
<head>
    <meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
</head>
<body>

<select name="year" id="year_select"></select>

<script type="text/javascript">

function clearSelect(select) {
    select.options.length = 0;
}

function fillSelect(select, startYear, endYear) {
    if (select == null) return;

    clearSelect(select);
    for (var i = startYear; i <=endYear; i++) {
        select.options[select.options.length] = new Option(i, i);
    }
}

window.onload = function() {
    fillSelect(document.getElementById('year_select'), 1900, 2000);
}

</script>

</body>
</html>


Это сообщение отредактировал(а) smartov - 13.3.2008, 12:20
PM MAIL   Вверх
bars80080
Дата 11.3.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



так быренько выдрал и перековал из другого примера, у меня к примеру не возникает задачи отстраивать такие селекты, их проще на сервере производить, а динамические, так обсуждались в других темах
PM MAIL WWW   Вверх
ksnk
Дата 11.3.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(bars80080 @  11.3.2008,  13:36 Найти цитируемый пост)
их проще на сервере производить,

Проще для кого? Придется переслать дополнительные <option>xxxx</option> - 21 символ * 100 - 2100 байт... (по минимуму smile)


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bars80080
Дата 11.3.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



ну, "проще" - расшифровывается, как проще (меньше думаешь)

в принципе всегда оценивал реализации с позиции будут ли работать, а если js отключён... так что проще...
PM MAIL WWW   Вверх
vasac
Дата 11.3.2008, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

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



noNick, вы не любите своих посетителей.
PM WWW   Вверх
smartov
Дата 11.3.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



bars80080, 
Цитата(bars80080 @  11.3.2008,  12:36 Найти цитируемый пост)
их проще на сервере производить

Согласен, но мало ли какие задачи у человека. Я, например, делал подобное для контрола с выбором даты.

ksnk, 
Цитата(ksnk @  11.3.2008,  12:47 Найти цитируемый пост)
Проще для кого? Придется переслать дополнительные <option>xxxx</option> - 21 символ * 100 - 2100 байт... 

Шаблонизаторы придуманы давным давно. В Smarty подобное делается тремя строчками, а переслать надо будет два числа.
Так что если бы мне задача позволяла я бы однозначно делал с помощью Smarty.
PM MAIL   Вверх
noNick
Дата 13.3.2008, 02:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо ребята , большое спасибо . 

Цитата(vasac @  11.3.2008,  14:11 Найти цитируемый пост)
noNick, вы не любите своих посетителей. 

нет  , почему же ? люблю , просто у меня доступ к инету плохой . 
PM MAIL   Вверх
bars80080
Дата 13.3.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



кстати, тов. smartov,
Цитата
bars80080, обращение к элементу не по стандарту

а как по стандарту, можно пояснений или ссылочку, где стандарты расписаны и почему чем-то нельзя (или нерекомендуется) пользоваться
PM MAIL WWW   Вверх
ksnk
Дата 13.3.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



smartov, Я вот и говорю, смотря для кого. Страничка тяжелеет на 2++ кила... всего за 3 строчки ;). К тому-же select с сотней позиций - нечеловеколюбиво, imho... я бы оставил там input, который подменял скриптом на чего-то более адекватное, на datepicker, какой или на тот-же select, на самый крайний случай...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
smartov
Дата 13.3.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



bars80080, 
Цитата(bars80080 @  13.3.2008,  09:44 Найти цитируемый пост)
а как по стандарту

Привет. Говоря строго я немного приврал, каюсь, сейчас подправлю пост smile
Ты сделал ПО стандарту, НО тот стандарт, который ты использовал очень стремный и может вести к ошибкам, часто имел (имеет?) проблемы в поддержке разными браузерами и требует обязательного наличия формы.

Хорошим стилем считается использование DOM
getElementById 
getElementsByTagName 

То есть сказав "не по стандарту" я имел в виду "не по стандарту DOM"
PM MAIL   Вверх
bars80080
Дата 13.3.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



стрёмный стандарт - звучит отлично
согласен с формой неудобно, когда пример касается всего лишь поля
однако, это следствие того что в каком-то случае у меня как раз что-то не заработало (именно через id), а вот при таком обращении (тоже согласен использовать document.name_form.name_element фигово), тем не менее работает

с другой стороны, вот есть у меня три книжки по js, нигде не упоминается "как лучше" (оно и понятно, год прошёл, и все стандарты изменились), однако коллекция forms присутствует везде

я уже поднимал тему, надеялся что накидают отличных ссылок по стандартам (вроде как php.net и т.п.), но облом
лучшей оказалась ссылка от Сардара: http://www.w3schools.com/jsref/jsref_obj_global.asp , но пока в аглицком переберёшь всё...
(там ведь не найдёшь "как лучше")

вот вопрос: 
все ли свойства и методы присущи document.name_form.name_element, будут работать и при document.getElementById('id_element')
?
PM MAIL WWW   Вверх
ksnk
Дата 13.3.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



smartov, 
А какая конкретно строчка из этих 2-х сделана "не по стандарту"?
Код

  var sselect = document.forms[0].god;
    for(i = 1900; i < 2001; i++) { sselect.options[i - 1900] = new Option(i, i); }}

Правильно ли я понимаю, что обязать программиста отказаться от name'ов в форме и заставлять их в обязательном порядке придумывать уникальный id элементам (getElementById), или вообще отсчитывать 5, к примеру, input от начала формы (getElementsByTagName) - это хороший стиль использования DOM'а?  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
smartov
Дата 13.3.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Цитата(ksnk @  13.3.2008,  11:34 Найти цитируемый пост)
document.forms[0]


Добавлено через 28 секунд
Цитата(ksnk @  13.3.2008,  11:34 Найти цитируемый пост)
что обязать программиста отказаться от name'ов в форме и заставлять их в обязательном порядке придумывать уникальный id элементам (getElementById)

Да

Добавлено через 1 минуту и 18 секунд
Цитата(bars80080 @  13.3.2008,  11:34 Найти цитируемый пост)
стрёмный стандарт - звучит отлично

Есть немного  smile

Добавлено через 4 минуты и 13 секунд
Цитата(bars80080 @  13.3.2008,  11:34 Найти цитируемый пост)
с другой стороны, вот есть у меня три книжки по js, нигде не упоминается "как лучше" (оно и понятно, год прошёл, и все стандарты изменились), однако коллекция forms присутствует везде

Рассказываю почему - все книжки для js писались под IE. Изначально в них даже forms не было. document.all и понеслася.
А вот document.form_name уже точно не по стандарту. Если коллекция forms[] еще является w3c-шной, то такая конструкция - нет.
http://www.w3schools.com/htmldom/dom_obj_document.asp

Цитата(bars80080 @  13.3.2008,  11:34 Найти цитируемый пост)
все ли свойства и методы присущи document.name_form.name_element, будут работать и при document.getElementById('id_element')

Обе эти конструкции просто возвращают ссылку на элемент.

Добавлено через 6 минут и 48 секунд
Цитата(ksnk @  13.3.2008,  11:34 Найти цитируемый пост)
обязать программиста отказаться от name'ов в форме и заставлять их в обязательном порядке придумывать уникальный id элементам

Про это еще напишу. Так надежнее, однкако, в современных реалиях есть библиотечки типа jquery которые имеют селекторы, чем несказанно облегчают жисть программисту. Поэтому сейчас эта штука с id отходит слегка на задний план. 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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