Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.11.2014, 07:50
Интересующийся
Отправить личное сообщение для osetr Посмотреть профиль Найти все сообщения от osetr
 
Регистрация: 07.11.2014
Сообщений: 21

Подскажите, как реализовать хеш-таблицу
У меня есть выпадающий список, в котором 57 значений. Надо, чтобы при выборе определенного значения списка, менялось значение двух текстовых полей "hostt" и "lun". Сделал пробный вариант для двух значений списка. Работает. Но для 57 значений так писать не вариант. Сказали, что можно это сделать через хеш-таблицу, но с ней я не разу не работал. Может кто-нибудь помочь ее реализовать??
l_id=getElm("selectScl").value;
  if (l_id==1) {
      hostt.value="'||l_hostt||':'||l_port||'";
      lun.value="'||l_lun||'";
    }
  if (l_id==2) {
      hostt.value="'||l_hostt2||':'||l_port2||'";
      lun.value="'||l_lun2||'";
  }
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2014, 08:12
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

как вариант:
<html>
	<head> 
		<title>Тестирование</title>
	</head>
	<body>
	<select>
		<option value="1">Картошка</option>
		<option value="2">Помидоры</option>
		<option value="3">Курица</option>
		<option value="4">Индюк</option>
	</select>
	<script>
var v = {
	1: {hostt: 'hostt 1', lun: 'lun 1'},
	2: {hostt: 'hostt 2', lun: 'lun 2'},
	3: {hostt: 'hostt 3', lun: 'lun 3'},
	4: {hostt: 'hostt 4', lun: 'lun 4'}
};

document.querySelector('select').onchange = function () {
	console.log(v[this.value]);
}
	</script>
	</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2014, 12:19
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Гы, тогда уж сразу можно массив использовать.
<html>
    <head>
        <title>Тестирование</title>
    </head>
    <body>
<div></div>
    <select>
        <option value="0">Картошка</option>
        <option value="1">Помидоры</option>
        <option value="2">Курица</option>
        <option value="3">Индюк</option>
    </select>
    <script>
var v = [
    {hostt: 'hostt 0', lun: 'lun 0'},
    {hostt: 'hostt 1', lun: 'lun 1'},
    {hostt: 'hostt 2', lun: 'lun 2'},
    {hostt: 'hostt 3', lun: 'lun 3'}
];


document.querySelector('select').onchange = function () {
   document.getElementsByTagName("div")[0].innerHTML=v[this.value].hostt+", "+v[this.value].lun
}
    </script>
    </body>
 
</html>

Последний раз редактировалось krutoy, 10.11.2014 в 12:37.
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2014, 12:21
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

krutoy,
выбери индюка и увидишь чудо
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2014, 12:38
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

skrudjmakdak,
Да, я подправил. Дело не в этом. Нумерация просто, это не принципиально, я думаю.
Ответить с цитированием
  #6 (permalink)  
Старый 10.11.2014, 12:55
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

Сообщение от krutoy Посмотреть сообщение
Гы, тогда уж сразу можно массив использовать.
можно. но если этот список:
0 - Картошка,
1- Помидоры,
2 - Курица
3 - Индюк
это данные из базы, которые могут удаляться и добавляться:
1- Помидоры
32 - Томат
54 - Оливье
...

тогда ваш алгоритм надо переписывать, а мой нет
Ответить с цитированием
  #7 (permalink)  
Старый 10.11.2014, 13:13
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

skrudjmakdak,
это то же самое, массив это частный случай объекта
<html>
	 
	<head>
	    <title>Untitled</title>
	</head>
	 
	<body>




<html>
    <head>
        <title>Тестирование</title>
    </head>
    <body>
<div></div>
    <select>
        <option value="0">Картошка</option>
        <option value="1">Помидоры</option>
        <option value="2">Курица</option>
        <option value="3">Индюк</option>
        <option value="10">foo</option>
    </select>
    <script>
var v = [
    {hostt: 'hostt 0', lun: 'lun 0'},
    {hostt: 'hostt 1', lun: 'lun 1'},
    {hostt: 'hostt 2', lun: 'lun 2'},
    {hostt: 'hostt 3', lun: 'lun 3'}
];

v[10]={hostt: 'hostt 10', lun: 'lun 10'}
 
 
document.querySelector('select').onchange = function () {
   document.getElementsByTagName("div")[0].innerHTML=v[this.value].hostt+", "+v[this.value].lun
}
    </script>
    </body>
  
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 10.11.2014, 13:48
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

угу, с кучей ненужных элементов внутри:
var v = [
    {hostt: 'hostt 0', lun: 'lun 0'},
    {hostt: 'hostt 1', lun: 'lun 1'},
    {hostt: 'hostt 2', lun: 'lun 2'},
    {hostt: 'hostt 3', lun: 'lun 3'}
];

//v[10]=...
v[1000]={hostt: 'hostt 10', lun: 'lun 10'}
 console.log(v);



<html>
    <head>
        <title>Тестирование</title>
    </head>
    <body>
<div></div>
    <select>
        <option value="13">Картошка</option>
        <option value="24">Помидоры</option>
        <option value="54">Курица</option>
        <option value="76">Индюк</option>
    </select>
    <script>
var data = [
    {id: 13, hostt: 'hostt 0', lun: 'lun 0'},
    {id: 24, hostt: 'hostt 1', lun: 'lun 1'},
    {id: 54, hostt: 'hostt 2', lun: 'lun 2'},
    {id: 76, hostt: 'hostt 3', lun: 'lun 3'}
];

var keys = {
	13: 0,
	24: 1,
	54: 2,
	76: 3
};
 
document.querySelector('select').onchange = function () {
	console.log(data[keys[this.value]]);
}
    </script>
    </body>
  
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 10.11.2014, 13:59
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

osetr, вообще, мы тут отвлеклись немного. Судя по этому
Сообщение от osetr
Надо, чтобы при выборе определенного значения списка, менялось значение двух текстовых полей "hostt" и "lun".
Вам может подойти чтото такое:

<html>
	 
	<head>
	    <title>Untitled</title>
	</head>
	 
	<body>




<html>
    <head>
        <title>Тестирование</title>
        <meta charset="windows-1251">
    </head>
    <body>
<div></div>
    <select id="select">
        <option >Картошка</option>
        <option >Помидоры</option>
        <option >Курица</option>
        <option >Индюк</option>
    </select>
<textarea id="hostt"></textarea>
<textarea id="lun"></textarea>
    <script>

get=function(id){
return document.querySelector("#"+id)
}

hostt=get("hostt")
lun=get("lun")
select=get("select")

select.onchange=function(){
hostt.value=lun.value=this.value
}
    </script>
    </body>
  
</html>

В этом ведь основной смысл? И похуй на реализацию.
Ответить с цитированием
  #10 (permalink)  
Старый 10.11.2014, 14:00
Интересующийся
Отправить личное сообщение для osetr Посмотреть профиль Найти все сообщения от osetr
 
Регистрация: 07.11.2014
Сообщений: 21

Спасибо. С реализацией вроде понятно. А не могли бы помочь с выводом этих данных в текстовое поле. например, если выбрал индюк, то в текстовом поле появилась бы запись "индюк - это животное", если выбрал картошка, то в этом же поле появилось бы "картошка - это овощ" и т.д. ну то есть надо написать edit.value="...". Что писать внутри кавычек??
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Подскажите, как реализовать (пара строчек кода) Volonter jQuery 0 31.01.2014 14:58
Как реализовать отправку содержимого из iframe нажатием комбинации клавиш ctrl+enter Naizer Общие вопросы Javascript 4 27.11.2013 17:39
Подскажите как реализовать такую задачу Gasherez (X)HTML/CSS 0 20.09.2013 19:59
Подскажите как мне вставить таблицу на сайт Sohne Серверные языки и технологии 5 06.10.2011 19:12