1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Проблема с доком в Web

Тема в разделе "Lotus - Программирование", создана пользователем KLif, 7 фев 2008.

  1. KLif

    KLif Гость

    Репутация:
    0
    Всем привет.

    1. есть форма, в которой при заполнении опр. полей и нажатии на кнопку, все данные передаются в скрытое поле ...
    2. после этого вызывается JS функция, которая по данным поля строит таблицу и выбрасывает её в <span>

    В чём проблема ... не могу понять, куда повесить вызов функции, чтоб при сохранение дока и открытии его заного вызывалась эта функция и строила таблицу ... Почему то не могу добраться до поля, когда открываю док заного ... document.getElementById - не находит объект ...

    Кто, что думает?
     
  2. Sandr

    Sandr Гость

    Репутация:
    0
    на форме галка generate HTML for all fields стоит?

    ЗЫ: не понял когда Вам нужно функцию вызывать, при сохранении, или при открытии?
    при открытии - onload
    при сохранении onSubmit...
     
  3. KLif

    KLif Гость

    Репутация:
    0
    Да стоит.

    Нужно на onload, туда и вставляю вызов функции ... НО открытый док не находится в состоянии редактирования и видимо из-за этого document.getElementById возвращает null ... хотя я не уверен, это первое что в голову пришло ...
     
  4. Sandr

    Sandr Гость

    Репутация:
    0
    нарисуйте поле руками <input name="myField" value ="тут компутет текст, который наследует значение из нужного Вам поля"> А поле то скройте от ВЕБа вообще...

    ЗЫ: А поле, кстати, не компутет у вас?
     
  5. KLif

    KLif Гость

    Репутация:
    0
    Не компутет.

    А смысл? Поле нарисованное руками, тоже должно быть скрыто и чем оно отличается от лотусовского? ... ведь при создании дока табличка нормально рисуется ...
     
  6. Sandr

    Sandr Гость

    Репутация:
    0
    кхм... так то поле скрыто? А как Вы его скрыли? Средствами нотеса? А если не скрывать его, то все работает?
     
  7. KLif

    KLif Гость

    Репутация:
    0
    Нет не работает ... скрываю средствами лотуса
     
  8. fvoice

    fvoice Гость

    Репутация:
    0
    <!--QuoteBegin-KLif+7:02:2008, 15:18 -->
    <span class="vbquote">(KLif @ 7:02:2008, 15:18 )</span><!--QuoteEBegin-->2. после этого вызывается JS функция, которая по данным поля строит таблицу и выбрасывает её в <span>
    [snapback]97009" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    это как?

    т.е. если документ новый то таблицу не надо строить, а если нет то строить?

    покажите код в котором вы обращаетесь к полю + HTML код поля из браузера
     
  9. KLif

    KLif Гость

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

    Теперь по шагам:
    1. у нас новая компания, создаём док ... добавляем сотрудников - видим как вывелась таблица, сохраняем нашу компанию ... закрываем док
    2. открываем только что сохранённый док, естесно span в который выводилась табличка - очистелся, нужно заного отрисовать её, но поле которе хранит данные таблицы почему то недоступно (функция отрисовки висит на onload)

    функция прорисовки: Technology - хранит структуру таблицы ...
    Код:
    function CreateTechnologyTable()
    {
    var TechTable = document.getElementById("TechnologyTable")
    TechTable.style.display = "none"
    
    var tech = document.getElementById("Technology").value
    var nTable 
    nTable = "<hr>"
    nTable = nTable + "<table>"
    nTable = nTable + "<tr><td>Наименование</td><td>Комментарии</td></tr>"
    var i
    var list, element
    list = tech.split(";")
    
    for (i = 0; i < list.length - 1; i++)
    {
    element = list[i].split("|")	
    nTable = nTable + "<tr>"
    nTable = nTable + "<td>"+element[0]+"</td>"
    nTable = nTable + "<td>"+element[1]+"</td>"
    nTable = nTable + "<td><input type=button name=drow"+i+" value=удалить onclick=DelRowTechnologyTable("+i+")></td>"
    nTable = nTable + "<td><input type=button name=erow"+i+" value=редактировать onclick=NewWindowForEdit("+i+")></td>"
    nTable = nTable + "</tr>"
    }
    
    nTable = nTable + "</table>"
    nTable = nTable + "<hr>"
    
    var chek = document.getElementsByName("TechnologyType")
    if (chek[0].checked == false)
    {
    document.getElementById("TechName1").value = ""
    }
    document.getElementById("TechComment").value = ""
    
    TechTable.innerHTML = nTable
    TechTable.style.display = "inline"
    
    }
    HTML
    Код:
    <input name="Technology" type="hidden" value="технология 1|wqerwer;технология 1|wqerwrwer;">
     
  10. Sandr

    Sandr Гость

    Репутация:
    0
    :rolleyes:
    все просто...
    Рисуете на форме заголовок таблици
    <table id="TechnologyTable"></table>

    между этими тегами вставляете компутет текст, который вычисляете так:

    Код:
    @Implode( "<TR> <TD>" + Technology+ "</TD></TR>"; @NewLine)
    естесственно помечайте все как ХТМЛ...

    Ну, это как примерчик.. переделать подж Вашу таблицу легко можно...
     
  11. Akupaka

    Akupaka А че я?.. О.о

    Репутация:
    0
    Регистрация:
    4 окт 2007
    Сообщения:
    3.360
    Симпатии:
    2
    а "TechnologyTable" в хтмле есть?.. :rolleyes:
     
  12. fvoice

    fvoice Гость

    Репутация:
    0
    Для: KLif
    Вы пишите:
    Код:
    var tech = document.getElementById("Technology").value
    а у
    Код:
    <input name="Technology" type="hidden" value="технология 1|wqerwer;технология 1|wqerwrwer;">
    не указан id
    попробуйте:
    Код:
    <input id="Technology" name="Technology" type="hidden" value="технология 1|wqerwer;технология 1|wqerwrwer;">
    хотя способ отображения действительно необычный..

    проще, как пишет господин Sandr прям на форме все это нарисовать..
     
  13. KLif

    KLif Гость

    Репутация:
    0
    Вроде получилось .... всем спасибо

    Это висит на поле ...

    Код:
    crTable := "";
    list := @Explode(Technology; ";");
    @For
    (
    i:=1; i < @Elements(list)+1; i := i + 1;
    element := @Explode(list[i]; "|");
    crTable := @Implode( crTable + "<TR>");
    crTable := @Implode( crTable + "<TD>"+element[1]+"</TD>");
    crTable := @Implode( crTable + "<TD>"+element[2]+"</TD>");
    crTable := @Implode( crTable + "</TR>")
    );
    crTable
     
Загрузка...

Поделиться этой страницей