Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не получается вывести возвращаемое функцией значение
Форум программистов > Интернет и сети > Web-программирование > HTML, CSS, XML, JavaScript
greendoc
При скрытии колонок (кстати может кому функция пригодится..) их номера заносятся в str.. я хочу вывести её в отдельном div (при нажатии на ++++).. див выводится пустой.. где ошибка?

Код
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<script type="text/javascript">
var str='';
function toggle(obj) {
debugger;
    hidden_groups();
    var el = document.getElementById(obj);
    el.style.display = (el.style.display != 'none' ? 'none' : '' );
}

function hidden_groups() {
debugger;
    var tbl  = document.getElementById('table_id');
    var rows = tbl.getElementsByTagName('tr');
    var cels = rows[0].getElementsByTagName('th');
    for (var i=2; i < 6; i++) {
        if (cels[i].style.display == 'none') {str += 'number'+ i +'<br />'}
        };
    return str;
}

function show_hide_column(btn,gr_name) {
//debugger;
    var gr_no;
    switch (gr_name) {
        case "Sales" :
            gr_no = 2;
            break;
        case "HR" :
            gr_no = 3;
            break;
        case "CSC" :
            gr_no = 4;
            break;
        case "AD" :
            gr_no = 5;
            break;
        case "FD" :
            gr_no = 6;
            break;
        default : alert('The nonexistent group is chosen !')
    }

    var tbl  = document.getElementById('table_id');
    var rows = tbl.getElementsByTagName('tr');
    stl = btn.checked ? '' : 'none';

// Group Name
    var cels = rows[0].getElementsByTagName('th')
    cels[gr_no].style.display=stl;
  }
  
</script>

<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" id="table_id">
  <tr>
    <th bgcolor="#999999" scope="col" onclick="toggle('sh_div')">++++</th>
    <th bgcolor="#999999" scope="col">General</th>
    <th bgcolor="#999999" scope="col"><input type=checkbox id="gr2" onClick="show_hide_column(this,'Sales')" checked> Sales</th>
    <th bgcolor="#999999" scope="col"><input type=checkbox id="gr3" onClick="show_hide_column(this,'HR')" checked>
    HR</th>
    <th bgcolor="#999999" scope="col"><input type=checkbox id="gr4" onClick="show_hide_column(this,'CSC')" checked>
    CSC</th>
    <th bgcolor="#999999" scope="col"><input type=checkbox id="gr5" onClick="show_hide_column(this,'AD')" checked> AD</th>
    <th bgcolor="#999999" scope="col"><input type=checkbox id="gr6" onClick="show_hide_column(this,'FD')" checked> FD</th>
  </tr>
</table>
<!-- hidden div -->
<div align="center" id="sh_div" style=" top:240px; HEIGHT:10px; WIDTH:150px; display:none; position:absolute" onclick="toggle('sh_div')">
<table border="0" width="100%" bgcolor="#000000"
cellspacing="1" cellpadding="2">
<TBODY>
<tr>
<td align="middle" bgcolor="#FFFFE1">
<script type="text/javascript">
//hidden_groups();
document.write(hidden_groups());
</script>
</td>
</tr>
</TBODY>
</table>
</div>
</body>
</html>
Rjkz
Ошибка в том что между тегами <TD></TD> , тэг <script> игнорируеться на сайте

http://nik-we.narod.ru/e-table.html

можете в этом убидиться , создайте таблицу нужной размерности нажав на "Создать" и попытайтесь в ячейку внести например тэг <font size=5> Hello </font> затем кликнете по другой ячейке ,а потом снова по той в которую это вписывали, вы увидите что текст в ячейки соответсвует введёному , а если вы введёте туда тэг <script>, и проделаете те же операции то обнаружете что этого тега там не будет,,,он затеряеться,,,

если найдёте решение как вписывать в ячейки таблицы или в див <script>, и чтоб он исполнялся сообщите пожалуста здесь!
greendoc
проблема была в том что
Код
<script type="text/javascript">
//hidden_groups();
document.write(hidden_groups());
</script>

у меня выполняется один раз, при выводе страницы, а в тот момент str - пуст. Когда я отображаю div на экране скрипт внутри <script></script> не выполняется заново.
Решил проблему изменив функцию
Код
function toggle(obj) {
   hidden_groups();
   var el = document.getElementById(obj);
   el.style.display = (el.style.display != 'none' ? 'none' : '' );
   el.innerHTML = str;
}
Rjkz
greendoc
не выполняеться потому что игнорируеться именно так как я сказал?
Vovochka
Любой блок <script> исполняется лишь единожды в момент, когда он встречается браузеру при разборе страницы.
+ Функции типа document.write() исполняться лишь в момент отрисовки документа. Когда браузер отобразил страницу, они уже ничего не выведут.
Rjkz
Цитата
Функции типа document.write() исполняться лишь в момент отрисовки документа. Когда браузер отобразил страницу, они уже ничего не выведут.


ерунда если document.write() записать в функции и вызывать эту функцию,,то пичататься будет столько сколько нужно
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.