Автор Тема: переделать функцию  (Прочитано 2129 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Гость
переделать функцию
« : 28 Апреля 2002, 04:07:47 »
Есть функция которая выбирает из группы chekbox`ов отмеченные и вставляет их значение в textarea:

function selectrowsfrom(table,inform)
{
  var selectrows = \'\';
  for (i = 0; i < document.forms[inform].fields.length; i++)
  {
    if (document.forms[inform].fields.checked == true)
    {
      selectrows = selectrows+document.forms[inform].fields.value+\',\\n\\t\';
    }
  }
  if (selectrows == \'\') {selectrows = "*";}
  else
  {selectrows = selectrows.substring(0, selectrows.length-3);}
  if (!document.forms[inform].fields.length) {selectrows = document.forms[inform].fields.value;}
  document.queryform.sqlquery.value = \'SELECT\\t\'+selectrows+\'\\nFROM \'+table;
}

Функция работает, если name чекбоксов = fields ( )

ВОПРОС: Как бы переделать функцию, чтобы она работала если имена чекбоксов будут
name01[1]  name01[2] ... name02[1]  name02[2] ... name20[1] ... а не просто fields?

Спасибо за помощь

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
переделать функцию
« Ответ #1 : 30 Апреля 2002, 17:24:20 »
Делаешь это в цикле, в котором генерируешь имена name01, name02 ..., а потом используешь eval.

Например.
Раньше было:

if (document.forms[inform].fields[i].checked == true)
{   selectrows = selectrows+document.forms[inform].fields[i].value+\',\\n\\t\';
}


Теперь:

eval(\'tempbool=document.forms[inform].name\'+k+\'.fields[i].checked\');
if (tempbool == true)
{   eval("selectrows = selectrows+document.forms[inform].name"+k+".fields[i].value+\',\\n\\t\'");
}


k - индекс имён.

  • Гость
переделать функцию
« Ответ #2 : 01 Мая 2002, 03:07:17 »
а как имена сгенерировать.. например если так их и назвать name01 name02 name03...?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28