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

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

  1. KLif

    KLif Гость

    Всем привет.

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

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

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

    Sandr Гость

    на форме галка generate HTML for all fields стоит?

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

    KLif Гость

    Да стоит.

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

    Sandr Гость

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

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

    KLif Гость

    Не компутет.

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

    Sandr Гость

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

    KLif Гость

    Нет не работает ... скрываю средствами лотуса
     
  8. fvoice

    fvoice Гость

    <!--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 Гость

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

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

    функция прорисовки: Technology - хранит структуру таблицы ...
    Код (Text):
    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
    Код (Text):
    <input name="Technology" type="hidden" value="технология 1|wqerwer;технология 1|wqerwrwer;">
     
  10. Sandr

    Sandr Гость

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

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

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

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

    Akupaka А че я?.. О.о

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

    fvoice Гость

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

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

    KLif Гость

    Вроде получилось .... всем спасибо

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

    Код (Text):
    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
     
Загрузка...
Похожие Темы - Проблема доком Web
  1. AgniXRudra
    Ответов:
    2
    Просмотров:
    52
  2. Zloikaktus
    Ответов:
    0
    Просмотров:
    30
  3. c0de3r
    Ответов:
    5
    Просмотров:
    153
  4. DobermannTT
    Ответов:
    10
    Просмотров:
    158
  5. SoulPaladin
    Ответов:
    4
    Просмотров:
    144

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