За последние 24 часа нас посетил 18661 программист и 1599 роботов. Сейчас ищут 984 программиста ...

Динамическое добавление элемента формы с содержанием из БД

Тема в разделе "PHP и базы данных", создана пользователем s-men, 3 мар 2011.

  1. s-men

    s-men Активный пользователь

    С нами с:
    3 мар 2011
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте!
    Подскажите пожалуйста, есть вот такой пример на ЯваСкрипте. Мне надо сделать точно такой же, но чтобы значения Селекта вытаскивались из БД. Чисто ЯваСкриптом я полагаю это сделать нельзя, надо совместно с PHP. Что вы посоветуете?

    HTML:
    1.  
    2. <form method="GET" action="#">
    3.  <div id="parentId">
    4.  <div>
    5.  <!--<input name="name_1" type="text" />-->
    6.  <select name="name_1">
    7.      <option>Петя</option>
    8.      <option>Коля</option>
    9.      <option>Вася</option>
    10.      <option>Женя</option>    
    11.  </select>
    12.  <a onclick="return deleteField(this)" href="#">[X]</a>
    13.  </div>
    14.  </div>
    15.  <input class="s" type="submit" value="GO!" />
    16. </form>
    17. <a onclick="return addField()" href="#">Добавить поле</a>
    18.  
    [js]
    var countOfFields = 1; // Текущее число полей
    var curFieldNameId = 1; // Уникальное значение для атрибута name
    var maxFieldLimit = 5; // Максимальное число возможных полей
    function deleteField(a)
    {
    // Получаем доступ к ДИВу, содержащему поле
    var contDiv = a.parentNode;
    // Удаляем этот ДИВ из DOM-дерева
    contDiv.parentNode.removeChild(contDiv);
    // Уменьшаем значение текущего числа полей
    countOfFields--;
    // Возвращаем false, чтобы не было перехода по сслыке
    return false;
    }
    function addField()
    {
    // Проверяем, не достигло ли число полей максимума
    if (countOfFields >= maxFieldLimit)
    {
    alert("Число полей достигло своего максимума = " + maxFieldLimit);
    return false;
    }
    // Увеличиваем текущее значение числа полей
    countOfFields++;
    // Увеличиваем ID
    curFieldNameId++;
    // Создаем элемент ДИВ
    var div = document.createElement("div");
    // Добавляем HTML-контент с пом. свойства innerHTML
    div.innerHTML = "<select name=\"name_" + curFieldNameId + "\"><option>Петя</option><option>Коля</option><option>Вася</option><option>Женя</option></select><a onclick=\"return deleteField(this)\" href=\"#\">[X]</a>";
    // Добавляем новый узел в конец списка полей
    document.getElementById("parentId").appendChild(div);
    // Возвращаем false, чтобы не было перехода по сслыке
    return false;
    }
    [/js][/html]
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    До или после формирования страницы?
     
  3. s-men

    s-men Активный пользователь

    С нами с:
    3 мар 2011
    Сообщения:
    2
    Симпатии:
    0
    Ну вообще вот такого плана задача:
    Есть форма документа, т.е поля ввода (реквизиты документа) типа: Дата документа, кто прислал, название, содержание, дата исполнения.....а так же на этот документ надо назначать НЕСКОЛЬКО ответственных лиц (или исполнителей документа). Т.е я вначале заполняю все первые поля формы, а потом когда мне надо выбрать, например 3-4 исполнителя, я прям в этой же форме тыкаю на кнопку или ссылку и тут добавляются эти новые поля, с содержимым из БД (т.е эти исполнители они находятся а БД, а потом вытаскиваются в СЕЛЕКТЫ). Я думаю что это делать на одной форме всё и когда я ввожу первые поля, а потом динамически эти селекты добавляю, чтобы всё что я в первые поля вводил не слетало...

    Вообще я сделал такую штуку с PHP+MySQL и с помощью АЯКСА, но у меня там криво несколько это всё работает, потому я и решил тут спросить это дело).

    Я такую штуку делал на ДЕЛФИ, это называется мастер-детайл (с помощью DBGrid), а вот как с помощью PHP и MySQL сделать, что не соображу основательно