如何从Joomla视图表单传递数据数组并获取Joomla Controller中的数据数组

时间:2012-09-12 04:35:10

标签: php arrays joomla

view/default.php

<form action="<?php echo JRoute::_('index.php?option=com_scheduler&view=report');?>" method="post" name="rform">
<input type="submit" class="button" value="Generate Report" />
<input type="hidden" name="task" value="report.generate" />
<input type="hidden" name="data" value="<?php echo $this->epsiode; ?>" />
</form>

$this->episode是数据数组。

controllers/report.php

function generate(){
    $items = JRequest::getVar('data',array(), 'post', 'array');
    print_r($items);
}

输出

Array ( [0] => Array )

请建议我如何获取阵列数据。我正在使用Joomla 2.5.x版。

3 个答案:

答案 0 :(得分:1)

不清楚隐藏字段数据包含的内容,但如果您只是回显一个数组,那么最终结果并不会让我感到惊讶。

我建议其中一个选项(可能有多种解决方案)。

Serializing数组

    <input type="hidden" name="data" value="<?php echo serialize(htmlentities($this->epsiode)); ?>" />

在控制器上,确保unserialize数据。

JSON格式

与上述类似的想法,只需使用JSON格式来存储数组。查看json_encodejson_decode

答案 1 :(得分:1)

试试这个

<?php 
$content = $this->epsiode;
for($i=0;$i<sizeof($content);$i++) { ?>
<input type="hidden" name="data[]" value="<?php echo $content[$i] ; ?>" />
<?php } ?>

答案 2 :(得分:0)

在您使用的任何控制器中使用$requestData = JRequest::get('post');postgetdata)。这应该为您提供从您正在使用的表单发送的所有数据。确保这是表单发布到的控制器。 Joomla有一些奇怪的行为,从任务重定向到视图,这可能会让你觉得你正在丢失数据。

使用Joomla 3.1.1