Joomla! компонент K2 - сохранение данных формы в базе данных - PullRequest
0 голосов
/ 17 марта 2012

Я создал специальную форму массива для элемента k2.

<div id="dynamicInput">
Datum 1<br><input type="text" name="dates[]">
</div>
<input type="button" value="dodaj" onClick="addInput('dynamicInput');">

* это в: /administrator/components/com_k2/views/item/tmpl/default.php*

В K2.js я динамически добавляю поля.

Как мне теперь отправить данные в базу данных?

Я не так хорош в Joomla, я написал это, но не работает .. Можете ли вы помочь мне.

$dates = array();
$dates = JRequest::getVar('dates', NULL, 'POST', 'array');
foreach ($dates as $key=>$value) {
$object = new JObject;
$object->set('datum', $value);
unset($object->_errors);
$datumi[] = $object;
}
$query = "INSERT INTO #__k2_items (`dates`) VALUES (NULL, $datumi)";
$db->setQuery($query);
$db->query();     

* Это в: /administrator/components/com_k2/models/item.php*

Ответы [ 2 ]

0 голосов
/ 09 января 2014

Мне кажется, эта тема закрыта, но я хотел бы знать, было ли какое-либо решение проблемы?

У меня есть похожая проблема.Я обнаружил, что проблема в том, что компонент k2 не видит отправленные значения.

Чтобы быть уверенным в этом, я использовал метод GET, чтобы видеть отправленные значения в строке адреса.Однако я также поместил

echo $ _SERVER ['REQUEST_URI'];

в item.php, но повторил только базовый URI, который расстраивает.Я видел domain.com/article_title?mysubmittedvalue=value&etc в адресной строке браузера и только domain.com/article_title на странице.

Конечно, форма в порядке, так как в адресной строке вы можете найтипредставленные значения.Проблема где-то в компоненте k2.

ТАКЖЕ пытается с этим кодом:

JURI::getInstance()->toString();

, который является подходящим способом Joomla для получения полного URI http://docs.joomla.org/JURI/toString

0 голосов
/ 17 марта 2012

$ date = JRequest :: getVar ('date', NULL, 'POST', 'array');

где указано NULL, это должно быть значение по умолчанию

http://docs.joomla.org/Retrieving_and_Filtering_GET_and_POST_requests_with_JRequest::getVar

Ваш запрос должен ждать действия, похоже, оно выполняется в представлении элемента

вам нужно разместить свой код внутри функции

function preuzmiDatum(){

$dates = array();
$dates = JRequest::getVar('dates','default value','post');
foreach ($dates as $key=>$value) {
$object = new JObject;
$object->set('datum', $value);
unset($object->_errors);
$datumi[] = $object;
}
$query = "INSERT INTO #__k2_items (`dates`) VALUES (NULL, $datumi)";
$db->setQuery($query);
$db->query(); 


}

в models / item.php и вызовите эту функцию в действии формы

...