Авто создание таблицы

VooSTee

Новичок
Всем привет!
Опять у меня ступор)
Есть форма которая заполняется пользователем . после отправки формируется html таблица <table>(точнее она уже готовая и обвешана как новогодняя елка переменными) в которой отображаются данные с формы, но с этим проблем нет) тфу тфу!

Ступор в следующем, в форме есть дополнительные поля которые пользователь может добавлять кликая по кнопки (работает на js) когда эти поля появляются, заполняться и отправляются методом post туда где их ждут, а ждут их в таблице которой нет(.

Как по мере поступления данных с дополнительных полей из формы создавать строчку в таблице?
Дело в том, что в форме нет лимита на дополнительные поля и пользователь может создать их сколько пожелает!)
 

AnrDaemon

Продвинутый новичок
Ты определись, то ли у тебя есть таблица, то ли нет.
 

AmdY

Пью пиво
Команда форума
А зачем тебе создавать новое поле в таблице. Воспользуйся какой-нибудь документированной БД вроде монги или храни данные сериализованными в json

А так - ALTER TABLE (подозреваю у вас mysql)
 

scorpion-ds

Новичок
@AmdY, так ТС о таблице в БД вроде ни слова не сказал.

Динамические поля скорее всего приходят в виде массива, глять что у тебя в $_POST, к примеру так: print_r($_POST), далее тебе может помочь: http://php.net/manual/ru/function.implode.php
 

antson

Новичок
Партнер клуба
как понимаю тут что-то похожее на счет-фактуру . Есть шапка и табличная часть товаров.
в субд это две таблицы с отношением один ко многим (шапка-строки)
при добавлении строки
ajax post
занесении данных в дочернюю таблицу
js правка формы у клиента
 

VooSTee

Новичок
(подозреваю у вас mysql)
Да, она самая. MySql
я имел ввиду таблицу не БД а обычную html:
HTML:
<table><tbody><tr><td></td></tr></tbody></table>
Но я уже догадываюсь как добавлять новые таблицы по мере поступления данных, пока еще не пробывал конечтно )
С помощью условий на подобе:
if (условие){
echo '<table><tr><td>и т д';
}

Только у меня вопрос, будет ли работать такой код если я его вставлю в середин HTML ?

Динамические поля скорее всего приходят в виде массива
Вобще ни как не приходят(, точнее приходят данные но почемуто только если добавить поля к форме в браузере firefox, а в chrome если отправить форму с доп полями приходят только с основной формы а с доп полей пусто.
Подозриваю js обрабочик работает по разному в разных браузерах и в хроме не видит доп поля.

Собственно сам обрабочик отправки формы:
Код:
    $(function () {
                            $('#forma').submit(function (e) {
                                e.preventDefault();
                                var data = $(this).serialize();
                                $.ajax({
                                    url: "../calc_online/action_ajax_form.php",
                                    type: "POST",
                                    data: data,
                                    beforeSend: function () {
                                        $('#result').html('<img id="result" src="../calc_online/3.gif"/>');
                                    },
                                    success: function (result) {
                                        $('#result').html(result)
                                    }
                                });
                            });
                        });
А вот доп поля:
Код:
<form method="POST" action='' id="forma">

Импуты++
 
доп поля
<div  id="trus"></div>


<input  type="button" value="Добавить" onclick="add();"/>
<input  type="button" value="Удалить" onclick="del();"/>


var e = document.getElementById('trus');
function add() {
    var tee = document.createElement('input');
    tee.type = 'number';
    tee.setAttribute("style", "width: 168px;");
    tee.setAttribute("required", "");
    tee.setAttribute("value", "");
    tee.step = '0.01';
    tee.min = '0';
    tee.max='10000';
    tee.placeholder='Введите число';
    tee.name = 'obem_d_'+ etee.getElementsByTagName('input').length +'' ;
    etee.appendChild(c);
}
function del() {
    var stee = stee.getElementsByTagName('input');
    stee[stee.length - 1].parentNode.removeChild(stee[stee.length - 1]);
}
</form>
Может есть мысли почему при создании дополнительного импута при отправки он не учитываеться ? хотя в firefox'e работает и даже в бд приходит.
в js очень слаб, пока что слаб!) вроде чего то не хватает того что будет следить за onclik'ам...
 
Последнее редактирование:

VooSTee

Новичок
как понимаю тут что-то похожее на счет-фактуру .
Не совсем но схема похоже
Это форма по расчету стоймости услуг , через форму с доп полями вносятся данные, после отправки формы все данные уходят в php обрабочик там считается складывается и умножается и выводится в PDF формате в виде прайса с табличками
 

VooSTee

Новичок
Вобще ни как не приходят(, точнее приходят данные но почемуто только если добавить поля к форме в браузере firefox, а в chrome если отправить форму с доп полями приходят только с основной формы а с доп полей пусто.
Подозриваю js обрабочик работает по разному в разных браузерах и в хроме не видит доп поля.
Вылечил заменой onClick на onMouseDown

Вот так:
HTML:
<input  type="button" value="Добавить" onmousedown="add();"/>
 
Сверху