Создание формы с записью в БД и размещение ее на страницу сайта

  • 6 Ответов
  • 864 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Alessandro2981

  • Новичок
  • *
  • 1
  • 0
Версия Joomla 3.4.3.

Здравствуйте, прошу вашей помощи по созданию собственной формы. Весь интернет уже облазил, так и не нашел то, что искал.
Из бесплатных расширений я не нашел ничего подходящего, так как везде там есть свои ограничения бесплатных версий.

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

?. Нужно ли использовать таблицы с тем же самым префиксом который использует Joomla (comp_) или можно без них?

HTML код формы:
Спойлер
[свернуть]

Нужно отправить данные в бд после нажатия кнопки Submit. Отправляется в 2 разные таблицы в только выборочные поля.

В таблицу: tsales_funnel

Сайт -> БД

(auto) -> ID
owca -> OWCA
ldrive -> Link_L

В таблицу: tsales_funnel_comments

(только что созданный ID) -> Funnel_ID
comment -> Comment
(время Now()) -> Comm_date

*

b2z

  • Support Team
  • *****
  • 7452
  • 741
  • Разраблю понемногу
Есть два варианта:

1. Создать модуль с AJAX функционалом - в разметке модуля сделать форму и данные посылать AJAXом. В хелпере модуля обрабатываете данные как Вам нужно. Вот докуметнация. Правда модуль не умеет создавать таблицы в БД, придется создать вручную.

2. Написать простенький компонент - сделать представление с формой и после отправки обрабатывать в компоненте. Компонент умеет создавать таблицы при установке. Также компонент позволяет потом просматривать данные в адвминке, если необходимо.

*

storm74

  • Новичок
  • *
  • 1
  • 0
Подскажите, пожалуйста,  как передать данные из формы в модель для записи в базу?
« Последнее редактирование: 29.09.2015, 15:01:46 от storm74 »

*

andy121212

  • Новичок
  • *
  • 4
  • 0
Подскажите, пожалуйста,  как передать данные из формы в модель для записи в базу?

В виде спомощью: супер глобальной переменной $_POST

$valuePole = $_POST['value'];

В моделе
Код

// Создаем новый query объект.
$db = JFactory::getDbo();
$query = $db->getQuery(true);

// Конструируем SQL запрос.
$query->insert('#__BD')
->columns('pole')
->values( $valuePole );

$db->setQuery($query);
$db->query();

return $query;

« Последнее редактирование: 02.12.2015, 00:45:15 от andy121212 »

*

andy121212

  • Новичок
  • *
  • 4
  • 0
Есть два варианта:

1. Создать модуль с AJAX функционалом - в разметке модуля сделать форму и данные посылать AJAXом. В хелпере модуля обрабатываете данные как Вам нужно. Вот докуметнация. Правда модуль не умеет создавать таблицы в БД, придется создать вручную.

2. Написать простенький компонент - сделать представление с формой и после отправки обрабатывать в компоненте. Компонент умеет создавать таблицы при установке. Также компонент позволяет потом просматривать данные в адвминке, если необходимо.

Как сделать что б таблица добавляла данные в базу? у меня это получается только когда пишу в виде запрос на добавление а как тоже из модели сделать непойму, можете хотя бы в общем объяснить механизм или процедуру вызова модели в виде с добавление данных в БД?