Вход

Просмотр полной версии : генерирование полей таблицы


sinh
22.05.2010, 19:11
Добрый день. Я совсем плохо знаю яваскрипт, можно сказать совсем не знаю. Стоит задача - в зависимости от выбора пункта из выпадающего списка заполнить таблицу, которая рядом на странице. Если выбирается другое значение с списке - то и значения меняются.

Я не знаю с чего начать. Каким образом это можно реализовать? Подскажите, пожалуйста.

Есть мысль что каждому элементу списка присваивается id, после выбора пункта меню, нажимается кнопка и запускает функцию, которая проверяет значение id и сравнивает его, если совпадает, то присваиваются значения переменным, которые затем буду участвовать в рисовании таблицы. Что-то вроде этого:

function showshedule() {
if (document.getElementById("mySelectId")==1) {
document.getElementById("one")='10.00';
document.getElementById("two")='10.15';
document.getElementById("three")='12.00'; }

if (document.getElementById("mySelectId")==2) {
document.getElementById("one")='10.20';
document.getElementById("two")='10.55';
document.getElementById("three")='12.20'; }


document.write (
<table width="300px" border="1" cellspacing="0" cellpadding="4" >
<tr align="center" bgcolor="#3366FF">
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td id="one"></td>
<td id="two"></td>
<td id="three"></td>
</tr>
</table> )
}
</tr>

Каким образом изменить код, чтобы это заработало?

exec
22.05.2010, 19:32
document.write не используйте, в данном случае он не нужен.

sinh
22.05.2010, 20:28
я не совсем пойму о чем Вы говорите. каким образом можно не использовать рисование таблицы? она ведь должна перерисовываться, кроме того, этот код тоже не работает. скажите, пожаулйста, где тут ошибка закралась?

Kolyaj
22.05.2010, 20:38
http://alljs.ru/2009/12/document-write/

sinh
22.05.2010, 21:00
а каким образом таблица будет перерисовываться с другими значениями?

Kolyaj
22.05.2010, 21:05
Если вы хотите вывести текст на страницу, то создайте в нужном месте элемент span, например, с заданным id и меняйте у него свойство innerHTML.. .

sinh
22.05.2010, 21:11
простите, сразу не понял, что это значит. сейчас буду пробовать. огромное спасибо!

sinh
22.05.2010, 21:26
<html>
<head></head>
<body>
<select id="mySelectId" name="mySelect">
<option value="s">1</option>
<option value="k">2</option>
<option value="a">3</option>
</select>
<input type="button" onclick="run()" value="run"/>
<table width="300px" border="1" cellspacing="0" cellpadding="4" id="table">
<tr>
<td><span id="t"></span></td>
<td><span id="b"></span></td>
</tr>
</table>
<script type="text/javascript">
function run() {
document.getElementById('t').innerHTML = 'adc';
document.getElementById('b').innerHTML = 'abc'; }
</script>
</body>
</html>

я не пойму где ошибка. подскажите, пожалуйста. в таком виде все работает, однако при попытке сравнения:

if (document.getElementById("mySelectId")= 's')
document.getElementById('t').innerHTML = '10.00' }

функция не работает(

Kolyaj
22.05.2010, 21:35
http://javascript.ru/if

sinh
22.05.2010, 21:40
<html>
<head></head>
<body>
<select id="mySelectId" name="mySelect">
<option value="s">1</option>
<option value="k">2</option>
<option value="a">3</option>
</select>
<input type="button" onclick="run()" value="run"/>
<table width="300px" border="1" cellspacing="0" cellpadding="4" id="table">
<tr>
<td><span id="t"></span></td>
<td><span id="b"></span></td>
</tr>
</table>
<script type="text/javascript">
function run() {
if (document.getElementById("mySelectId")= 's')
document.getElementById('t').innerHTML = 'adc';
[else
document.getElementById('b').innerHTML = 'abc';] }
</script>
</body>
</html>

мне кажется, что я как-то не так беру селектор списка, поэтому не работает проверка. может быть он как-то числами выбирается? тогда вообще шикарно бы case смотрелся. в списке будет около 100 выборов.

JsLoveR
22.05.2010, 21:46
function run()
{
if (document.getElementById("mySelectId").value== 's'){document.getElementById('t').innerHTML = 'adc';}
else{document.getElementById('b').innerHTML = 'abc';}
}

JsLoveR
22.05.2010, 21:47
sinh,
Где Вы видели такую кон-ю [else
document.getElementById('b').innerHTML = 'abc';] ?

sinh
22.05.2010, 21:50
if

Выполняет тот или иной блок кода в зависимости от того, верно ли условие
Синтаксис
if (condition)
statement1
[else
statement2]

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

sinh
22.05.2010, 21:50
JsLoveR,
спасибо большое, так заработало. подскажите, а case, никак нельзя использовать?

JsLoveR
22.05.2010, 21:52
sinh,
можно

JsLoveR
22.05.2010, 21:57
function run()
{
switch(document.getElementById("mySelectId").value)
{
case 's':{document.getElementById('t').innerHTML = 'adc';break}
case 'k':{document.getElementById('b').innerHTML = 'abc';break}
}
}

sinh
22.05.2010, 21:59
прочитал ман по свич, и понял. ну спасибо огромнейшее! просто очень помогли, с удовольствием буду заходить на этот форум :)

JsLoveR
22.05.2010, 22:00
sinh,
:thanks:

micscr
23.05.2010, 08:12
sinh, квадратные скобки вот тут:
if (condition)
statement1
[else
statement2]
означают, что в этом выражении то что в квадратных скобках - может отсутствовать.
Т.е. верно:
if (condition)
statement1
else
statement2
И так же верно:
if (condition)
statement1

Это везде такие правила оформления грамматических конструкций. Как правило они вначале объясняются - поищи по чему занимаешся.

sinh
23.05.2010, 10:29
спасибо за замечание.
в данном случае лучше использовать switch, у меня выборка почти 100 пунктов.

замечательный сайт! большое спасибо за помощь:)