0

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 を使用しています。

4

3 に答える 3

1

これを試して

<?php 
$content = $this->epsiode;
for($i=0;$i<sizeof($content);$i++) { ?>
<input type="hidden" name="data[]" value="<?php echo $content[$i] ; ?>" />
<?php } ?>
于 2012-09-13T02:18:44.000 に答える
1

隠しフィールドのデータに何が含まれているかは明確ではありませんが、配列をエコーするだけであれば、最終結果は驚くことではありません。

オプションの1つを提案します(複数のソリューションが可能です)。

配列のシリアル

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

コントローラーで、データのシリアル化を解除していることを確認します。

JSON 形式

上記と同様の考え方で、JSON 形式を使用して配列を格納するだけです。json_encodejson_decodeを確認する

于 2012-09-12T06:37:31.893 に答える
0

使用している任意のコントローラーで ( またはそれに応じて) を使用し$requestData = JRequest::get('post');ます。これにより、使用しているフォームから送信されたすべてのデータが提供されます。これがフォームの投稿先のコントローラーであることを確認してください。Joomla には、タスクからビューへのリダイレクトに関する奇妙な動作があり、途中でデータが失われているような印象を与える可能性があります。postgetdata

Joomla 3.1.1 の使用

于 2013-07-08T18:23:53.917 に答える