Создайте форму динамически с помощью Ajax, jQuery
Вопрос
Я создаю очень маленькое веб-ERP-приложение с PHP / MySQL / CodeIgniter / jQuery
Счет /Инвойс создается с
current date
client data
etc
Теперь я должен добавить товары в этот новый счет, который создается, без перезагрузки / отправки страницы.Каждый продукт будет иметь свое количество, описание, цену за единицу, промежуточный итог и т.д.
Я бы хотел добавить каждую "строку" продукта, используя Ajax / jQuery.
- Как я должен динамически создавать форму продуктов?Я имею в виду, разрешить пользователям добавлять новую строку продукта или удалять строки продукта из счета-фактуры, используя Ajax?
- Как суммировать все динамически добавляемые "строки" в форме, чтобы получить итоговый счет?
- И как я должен получать и обрабатывать все данные post, чтобы я мог вставить соответствующую запись invoice в таблицу invoices и вставить записи products в таблицу products_invoices?
Редактировать:здесь вы можете увидеть рабочий пример того, что я хочу сделать
http://www.bambooinvoice.org/index.php/invoices/newinvoice
РЕДАКТИРОВАТЬ 2:Этот плагин jQuery, похоже, то, что я искал
http://code.google.com/p/jquery-dynamic-form/
Решение
По сути, вы должны добавлять элементы формы в DOM динамически, поскольку пользователь продолжает добавлять строки новых данных.Я считаю, что jquery окажет большую помощь в использовании стандартных API для доступа / изменения DOM-узлов.
Для суммирования цифр вы должны обернуть числовые поля специальными крючками, такими как <span id="value_x">34</span>
где x
это счетчик.После каждого добавления таких новых данных повторяйте такие span
элементы и суммируют значения и отображают их в поле типа $("#sumtotal").innerHTML = sum;
После динамического обновления формы, когда пользователь нажимает кнопку отправки, все данные формы отправляются на сервер как обычные данные публикации.Вы должны использовать надлежащее name
и id
атрибуты для полей данных, которые вы хотите обработать на сервере и обновить некоторую таблицу базы данных.
Другие советы
поскольку вы используете jQuery, я бы использовал плагин jQuery Grid для реализации раздела product rows.
Он легко настраивается и гибок, вы можете использовать Ajax для заполнения строк вручную или автоматически (он может считываться непосредственно из таблицы MySQL с помощью простого PHP-сервера), и у вас есть все возможности для перебора всех строк для публикации результатов на сервере, для разбиения на страницы (если вам нужно много строк, мы успешно использовали его с более чем 15 000 строк) и для выполнения дополнений и других операций.
Надеюсь, это поможет!