的Joomla!组件K2 - 将表单数据存储到数据库

时间:2012-03-17 10:52:49

标签: php mysql joomla joomla-k2

我为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 :(得分:0)

$ dates = JRequest :: getVar('dates',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中并在表单操作上调用该函数

答案 1 :(得分:0)

在我看来,这个主题有点封闭,但我想知道这个问题是否有任何解决方案?

我有类似的问题。我发现问题是k2组件没有看到提交的值。

为了确保这一点,我使用了GET方法,因此我可以在地址行中看到提交的值。但是我也放了一个

  

echo $ _SERVER ['REQUEST_URI'];

在item.php中排队,但只回显了令人沮丧的基础uri。我在浏览器的地址行中看到了domain.com/article_title?mysubmittedvalue=value&etc, 并且页面上只有domain.com/article_title。

当然表单没问题,因为在地址行中您可以找到提交的值。问题出在k2组件中。

还尝试使用此代码:

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

这是获得完整URI的合适的joomla方式 http://docs.joomla.org/JURI/toString