Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript, массивы
Java Script, массивы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

name

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
</head>
 
<script language='JavaScript1.2'>
<!--
 
function Test(i) {
 eval( "document.postform.years["+i+"].value = document.postform.years_select["+i+"].value" );
}
</script>
 
 
<body>
<form name='postform'>
<select name='years_select[1]'>
 <option value='1004'>1004</option>
 <option value='1005'>1005</option>
</select>
<input type='text' name='years[1]' />
<input type='button' onClick='Test(1)' value='add'>
 
</font>
 
</body>
<html>
 

 
По задумке, по клике по кнопке, текущее содержимое селекта должно быть записано в input.
 
Запускаем: "document.postform.years.1" - есть null или не является объектом.
 
Что я  делаю неправильно ?




Читаем правила по поводу правописания названий языков. Исправил. — Svarga.

Всего записей: 78 | Зарегистр. 05-11-2003 | Отправлено: 14:44 25-06-2004 | Исправлено: Svarga, 16:47 25-06-2004
medreces

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так работает:

Код:
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
</head>
 
<script language='JavaScript1.2'>
function Test(i) {
  eval("document.postform.years"+i+".value = document.postform.years_select"+i+"[document.postform.years_select"+i+".options.selectedIndex].value");
}
</script>
 
<body>
 
<form name='postform'>
<select name='years_select1'>
 <option value='1004'>1004</option>
 <option value='1005'>1005</option>
</select>
<input type='text' name='years1' value=''>
<input type='button' onClick="Test(1)" value="add">
</form>
 
</body>
</html>

 
Удачи!

Всего записей: 21 | Зарегистр. 18-12-2003 | Отправлено: 16:35 25-06-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
name
некорректное name... если уж тянет на такие кривые имена, то их в кавычки заключать надо... А так интерпретатор считает, что это не имя с квадратными скобками, а элемент массива...
 
Зачем настолько всё заморачивать?
Проще можно:

Код:
<form name=postform>
<select name=y1>
<option>1004</option>
<option>1005</option>
</select>
<input type=text name=year1>
<script>
function Test(sl,tx){
tx.value = sl.options[sl.selectedIndex].text
}
var F=document.postform
</script>
<input type=button onClick="Test(F.y1,F.year1)" value=add>
</form>

В действии:
http://forall.ru-board.com/Svarga/select+copy.html

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 17:07 25-06-2004 | Исправлено: Svarga, 17:10 25-06-2004
name

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Читаем правила по поводу правописания названий языков. Исправил. — Svarga.

Сорри
 
medreces
Это я и сам знаю )

Цитата:
JavaScript, массивы

Как правильно написать для массивов ?
 

Всего записей: 78 | Зарегистр. 05-11-2003 | Отправлено: 17:09 25-06-2004 | Исправлено: name, 17:15 25-06-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как правильно написать для массивов ?

было "Java Script"... пишется слитно: для фильтра по названию тем это критично...


См. мой ответ чуть выше: подойдёт такое решение?

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 17:13 25-06-2004
name

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
было "Java Script"... пишется слитно: для фильтра по названию тем это критично...  

Угумс, я уже извинился)
 
Не понял твою мысль. Давай разбираться подробнее.
 

Цитата:
если уж тянет на такие кривые имена,  

Какие конкретно кривые ?  

Цитата:
то их в кавычки заключать надо...  

Все в кавычках.

Цитата:
А так интерпретатор считает, что это не имя с квадратными скобками, а элемент массива...  

Мне как раз и нужен элемент массива (селект и инпут должны быть элементами массива).

Всего записей: 78 | Зарегистр. 05-11-2003 | Отправлено: 17:24 25-06-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Какие конкретно кривые ?  

некривые = буквы_цифры_подчеркивание
 

Цитата:
Все в кавычках.

нет.
замени eval на document.write и увидишь...
 
Если уж так хочется, как делаешь, то что-то вроде такого будет

Код:
eval( "document.postform.years['["+i+"]'].value =  

 

Цитата:
 (селект и инпут должны быть элементами массива)

Как они будут массивами, если массивами бывают только radio?
Что-то ты недоброе задумал...
Чтобы несколько инпутов или чего-то ещё массивами сделать, то придётся создавать новый массив... вроде такого:
var selectAr = [document.form1.select1,document.form1.select2,document.form2.select1];
и т. д., но это уже всё  мрак...
 
Для чего именно такой странный подход? Неужели нельзя сделать всё просто?

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 17:40 25-06-2004
name

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
eval( "document.postform.years['["+i+"]'].value =  

Это не работает.
 

Цитата:
Для чего именно такой странный подход? Неужели нельзя сделать всё просто

 
Для PHP. Для селектов работает  хорошо.

Цитата:
This produces two arrays, MyArray and MyOtherArray, that gets sent to the PHP script. It's also possible to assign specific keys to your arrays: <input name="AnotherArray[]">
<input name="AnotherArray[]">
<input name="AnotherArray[email]">
<input name="AnotherArray[phone]">
 
The AnotherArray array will now contain the keys 0, 1, email and phone.  

 
Поставлю ид на всё и по ним обращусь.
 
 
 
 

Всего записей: 78 | Зарегистр. 05-11-2003 | Отправлено: 18:07 25-06-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
name

Цитата:
Для PHP. Для селектов работает  хорошо.

Удачи
 
Ты с такой хорошестью возиться больше будешь.
Это не массивы, а просто кривые имена с точки зрения HTML.
 
Понятно, что отправляться они будут в виде  
?bredKakoyto[]=1&anotherBred[phone]=2
 
но чтобы с таким кошмаром обращаться в JavaScript нужно делать, как я писал выше:

Код:
<form name=Frm>
<input type=text name="megaBred[123]" value=777>
</form>
 
<script>alert(document.Frm["megaBred[123]"].value)</script>

 
В действии: http://forall.ru-board.com/Svarga/names_marazm.html
 
Подход понятен? В JavaScript'е такие чудеса массивами быть не могут — это просто именно корявые имена элементов формы.
 
P. S. Советую учебник, который такие имена рекомендует, выкинуть как можно скорее.
 
Добавлено

Цитата:
eval( "document.postform.years['["+i+"]'].value =  
 
Это не работает.

Немного обшибся... Так:

Код:
eval( "document.postform['years["+i+"]'].value =  


----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 20:32 25-06-2004
name

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Понятно, что отправляться они будут в виде  
?bredKakoyto[]=1&anotherBred[phone]=2

 
Истинно комшар. Перепишу в нормальный вид
 

Цитата:
 
но чтобы с таким кошмаром обращаться в JavaScript нужно делать, как я писал выше:  
 
Код:<form name=Frm>  
<input type=text name="megaBred[123]" value=777>  
</form>  
 
<script>alert(document.Frm["megaBred[123]"].value)</script>  
 

Угумс, понятно, спасибо.
 

Цитата:
Подход понятен? В JavaScript'е такие чудеса массивами быть не могут — это просто именно корявые имена элементов формы.

Да, все предельно ясно.
 

Цитата:
 
P. S. Советую учебник, который такие имена рекомендует, выкинуть как можно скорее.  
 

 
Цитата была из PHP Manual, правда 2003 года, сейчас посвежее закачаю.
Chapter 51. PHP and HTML
This file was generated: Thu Apr 15 13:13:36 2004

Всего записей: 78 | Зарегистр. 05-11-2003 | Отправлено: 13:34 26-06-2004
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
name

Цитата:
P. S. Советую учебник, который такие имена рекомендует, выкинуть как можно скорее.  
 
Цитата была из PHP Manual, правда 2003 года, сейчас посвежее закачаю.  
Chapter 51. PHP and HTML  
This file was generated: Thu Apr 15 13:13:36 2004

 
Для PHP сие нормально...
Код:
<?php
if(isset($ar)){
        foreach ($ar as $key=>$value){
            if(preg_match('/^[\d\w_]+$/',$key) &&
                preg_match('/^[\d\w_а-яА-Я\s]+$/',$value)){
                    echo "\$ar[$key] = $value<br>\n";
                    }
                }
        echo "<hr>";
        }
?>
<form>
<input type=text name="ar[0]" value="0"><br>
<input type=text name="ar[1]" value="1"><br>
<input type=text name="ar[2]" value="2"><br>
<input type=text name="ar[key1]" value="3"><br>
<input type=text name="ar[key2]" value="4"><br>
 
<input type=submit value=submit>
</form>
но из JavaScript'а с такими элементами формы обращаться неудобно

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 22:09 26-06-2004 | Исправлено: Svarga, 22:31 26-06-2004
name

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Для PHP сие нормально...

Дык, я о том и говорил

Цитата:
Для PHP. Для селектов работает  хорошо

Только я оговорился - для input'oв -)
 

Цитата:
но из JavaScript'а с такими элементами формы обращаться неудобно  

Ага, по-моему самое рациональное поставить ид имяN и по ним работать.
 
Тему, я думаю, можно считать исчерпаной
 

Всего записей: 78 | Зарегистр. 05-11-2003 | Отправлено: 03:06 27-06-2004
Olga_Erm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста! Надо сделать вертикальное меню, выпадающее при событии "Click".  
Пишу:
 
Подробнее...
 
но при обновлении страницы, меню сворачивается. Что делать?????????!!!!!!!!!!
 





за дубль /Cheery/

Всего записей: 9 | Зарегистр. 06-02-2008 | Отправлено: 13:21 08-02-2008 | Исправлено: Cheery, 19:34 08-02-2008
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Olga_Erm
причём здесь массивы?

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 14:48 08-02-2008
Olga_Erm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это не основное меню. Что-то типа раскрывающегося списка, который находится в блоке.

Всего записей: 9 | Зарегистр. 06-02-2008 | Отправлено: 18:40 08-02-2008
ua3pmk

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обьясните пожалуйста чайнику как это работает  
http://www.ugbereg.ru/magic.html
 





и какое отношение это имеет к теме? /Cheery/

Всего записей: 1 | Зарегистр. 26-04-2008 | Отправлено: 17:07 26-04-2008 | Исправлено: Cheery, 20:29 26-04-2008
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ua3pmk
посмотри на диагональ которая начинается слева снизу и заканчивается справа в верху, все цифры которые получаются после вычитанию распологаются на ней
 

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 18:10 26-04-2008 | Исправлено: andead, 18:13 26-04-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ua3pmk
http://forum.ru-board.com/forum.cgi?action=filter&forum=29&filterby=topictitle&word=%EA%E2%E0%E4%F0
http://forum.ru-board.com/forum.cgi?action=filter&forum=3&filterby=topictitle&word=%EA%E2%E0%E4

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:30 26-04-2008
NORIO



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как объединить два разряженных массива чтобы при создании нового массива их элементы вставились в пустые места друг друга?
 
[x]=индекс элемента  
 
a[0] [2] [4]   и   b[1][3]
что бы получилось с[0] [1] [2] [3] [4]
 
Смотрел в справке методы массивов но ненашёл подходящего.

Всего записей: 875 | Зарегистр. 18-12-2004 | Отправлено: 19:50 19-08-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NORIO

Цитата:
Смотрел в справке методы массивов но ненашёл подходящего.

ну так напишите пробежаться по одному массиву.. если значения нет, то вставлять из второго

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:52 19-08-2008
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript, массивы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru