情况如下:我有两个不同的功能和一个视图。我需要将数据从函数1发送到视图(2个数组),从该视图我需要将数据发送到函数2(1个数组)。
将数据从函数1发送到视图是一件容易的事,但我不知道如何使用函数2,因为我想发送给它的信息有一个函数1的数组加上其他新数据用户条目。
我知道没有机会通过URL发送数组,但我没有想法。
哪个是传递数据的最佳选择?
我发送到视图这个数据:
admin :(功能1的一部分)
//last part of the code
$this->data['conditions'] = $conditions;
$this->data['notselectedconditions'] = $notselectedconditions;
$this->parser->parse('admin/tools/showReport.tpl',$this->data);
在视图中我使用有关这些数组的信息,用户可以添加一些新条目。
视图:
<dt>Tipo de Usuario<dt>
<dd><a href="{site_url()}admin/admin/reloadConditions/1">Pre Registrado</a></dd>
reloadConditions是函数2,需要函数1提供的函数加上用户的选择以便继续过滤结果。
我需要在功能2上提供的信息是:数组'条件'和用户新条目
答案 0 :(得分:2)
经过长时间的讨论和聊天中的一些澄清,这是我提出的解决方案:
<?php
function addQueryParameters($url, $params) {
$paramsStr = http_build_query($params);
$fragment = parse_url($url, PHP_URL_FRAGMENT);
$query = parse_url($url, PHP_URL_QUERY);
$interUrl = '';
if ($query === NULL) {
$interUrl = '?';
}
if ($fragment !== NULL) {
$interUrl = '&';
}
$interUrl .= $paramsStr;
if ($fragment !== NULL) {
$pos = strpos($url, '#' . $fragment);
$url = substr($url, 0, $pos) . $interUrl . substr($url, $pos);
}
return $url;
}
function linkifyFilterConditions($url, $conditions) {
return addQueryParameters($url, array('conditions' => $conditions));
}
// Tests
// TODO: replace by unit tests
var_dump(linkifyFilterConditions('http://example.com/blub', [1,2,3]));
var_dump(linkifyFilterConditions('http://example.com/blub#a', [1,2,3]));
var_dump(linkifyFilterConditions('http://example.com/blub?a=b#a', [1,2,3]));
用法(在OP的视图中):
$href = 'yourscript?conditions[]=a';
$href = linkifyFilterConditions($href, $conditions);
echo '<a href="' . $href . '">Test</>';
答案 1 :(得分:-1)
如何将数组放入$_SESSION
?