Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Динамическая добавка линий в таблицу HTML

Сообщения:  [1-10]   [11-12] 

 
 автор: codexomega   (29.08.2005 в 07:27)   письмо автору
 
   для: Crux   (29.08.2005 в 07:10)
 

Теперь работает.
Никогда бы не додумался.
Ещё раз спасибо.

   
 
 автор: Crux   (29.08.2005 в 07:10)   письмо автору
 
   для: codexomega   (29.08.2005 в 06:22)
 

помменяйте условия цикла

for(k = n_checkbox.length-1 ; k >0 ; k--)

   
 
 автор: codexomega   (29.08.2005 в 06:22)   письмо автору
 
   для: codexomega   (23.08.2005 в 18:42)
 

Я посчитал уже было тему закрытой, но маленькая проблемка, пока только одна...
Дело в том что данная функция:


function delRow(){
  // get checked lines 
  var n_checkbox = document.getElementById("table1").tBodies[0].childNodes 
  alert("nb_rows: " + n_checkbox.length);
  // initialize k = 1 to prevent removing first row
  for(k = 1 ; k < n_checkbox.length; k++){ 
            if(n_checkbox[k].childNodes[0].childNodes[0].checked == true) 
                document.getElementById("table1").tBodies[0].deleteRow(k);
  }




Не убирает одним махом все выделенные линии, а каждый раз приходится кликать на кнопку чтобы стирать по одной линии.
Вроде процедура находится в цикле, так что теоретически должна работать, но на практике - нет...

   
 
 автор: codexomega   (27.08.2005 в 22:28)   письмо автору
 
   для: Crux   (27.08.2005 в 19:55)
 

Огромное спасибо!
Теперь всё работает как надо.
Выручили.

   
 
 автор: Crux   (27.08.2005 в 19:55)   письмо автору
 
   для: codexomega   (26.08.2005 в 07:21)
 

1. с учётом того что ваша функция не работае, то утверждение, что: Короче вы все ошибаетесь - это абсурд.

2. помогаю

function delRow()

        //get checked lines 
  var n_checkbox = document.getElementById("table1").tBodies[0].childNodes
        for(k = 0 ; k < n_checkbox.length; k++) 
            if(n_checkbox[k].childNodes[0].childNodes[0].checked == true)
                document.getElementById("table1").tBodies[0].deleteRow(k); 
}

   
 
 автор: codexomega   (26.08.2005 в 07:21)   письмо автору
 
   для: codexomega   (23.08.2005 в 18:42)
 

Короче вы все ошибаетесь.
Чекбоксы точно также входят в группы как и радиобутоны.
Не знаю что я сделал, но мой скрипт вдруг заработал.
А, да я вместо name поставил id но название оставил для всех одинаковое list.
Итак, скрипт выводит колличество чекбоксов а также выдает сколько отмеченных.


    function delRow(){ 
        //get checked lines
        var v_checkbox = document.getElementsByName("list");
        var nb_checked = 0;
        alert("checkboxes: " + v_checkbox.length);
        for(k = 0 ; k < v_checkbox.length; k++){
            if(v_checkbox[k].checked == true){
                nb_checked++;
                //document.getElementById("table1").deleteRow(?);
            }
        }
        
        alert("nb_checked: " + nb_checked);



Не знаю теперь как стереть линии именно с отмеченными чекбоксами.
Сижу, смотрю на код и ни фига не понимаю.
Короче до меня не доходит.

Помогите пожалуйста если видите ответ.
Спасибо.

   
 
 автор: Crux   (25.08.2005 в 07:29)   письмо автору
 
   для: codexomega   (24.08.2005 в 18:42)
 

у чекбоксов одинаковые имена не должны быть, это не радиобутоны.

   
 
 автор: codexomega   (24.08.2005 в 18:42)   письмо автору
 
   для: servannin   (24.08.2005 в 18:19)
 

Одинаковое имя list, потому что это имя группы в которую входят все чекбоксы.
Если я поставлю еще несколько чекбоксов, для теста, рядом с первым, на первой строке при загрузке страницы, по умолчанию, т.е не методом динамической добaвки, при нажатии кнопки Add Row, тогда мой код работает, распознает колличество чекбоксов относящихся к данной группе, под названием list а также распознает количество тех, которые отмеченны.

   
 
 автор: servannin   (24.08.2005 в 18:19)   письмо автору
 
   для: codexomega   (24.08.2005 в 17:50)
 

вообще, как вы знаете,для того,чтобы различать ,например,элементы формы,им нужно присвоить что-то,по чему их можно различать...в JS это name и id .

я думаю,что лучше присваивать им не name, а id.

скрипт не находит новых чекбоксов,потому что при вызове ф-ции addRow() у вас создаются чекбоксы с одинаковыми именами (в данном случае с именем list).
вам нужно изменить код,чтобы создавались чекбоксы с разными именами...подумайте...это можно реализовать :)
и ,соответственно, в ф-ции delRow() не нужно указывать конкретное имя (list) ;
я бы изменил
 var v_checkbox = document.getElementsByName("list");

на что-то типа этого:
 var v_checkbox = document.getElementsById(id);

где id можно получить так:
id = event.srcElement.id;
при клике (или как угодно) по элементу
удачи

   
 
 автор: codexomega   (24.08.2005 в 17:50)   письмо автору
 
   для: Crux   (24.08.2005 в 13:29)
 

Спасибо.
Но мне нужно еще выяснить какая строка выбранна для удаления.
Для этого я раставил checkbox. Проблема в том что при добавлении новых линий в таблицу, почему то скрипт не находит добавленных чекбоксов.
Вот небольшая функция для проверки количества коробок и тех, которые с галочками.


function delRow(){ 

  var v_checkbox = document.getElementsByName("list");
  var nb_checked = 0;
  alert("checkboxes: " + v_checkbox.length);
  for(i = 0 ; i < v_checkbox.length; i++){
    if(v_checkbox(i).checked == true)
      nb_checked++;
  }
        
  alert("nb_checked: " + nb_checked);
}


Код видит только первую строку таблицы, а остальные игнорирует...

   

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования