【发布时间】:2012-03-22 10:28:33
【问题描述】:
我可能会重复我的问题,但这次我用我的实际代码提供了确切的场景请耐心等待我...... 我的主页网址是
http://localhost/mediabox/home/box/12
在我的主页上,当我点击任何一个链接时,我有两个语言链接,页面会重新加载该特定语言的内容。
链接位于视图(模板/索引)内,如下所示
<a href="<?php echo base_url(); ?>home/box/?bid=<?php echo $template_data['box_id']?>&ln=<?php echo $lang['language_id']?>"></a>
所以我用链接发送投标和 ln 作为 qurystring
现在,当我点击链接时,页面内容会根据选择的语言而变化,但 url 也会更改为
http://localhost/mediabox/home/box/?bid=12&ln=2
我想要的是页面的内容会改变,但 url 不会改变,或者我可以在加载页面后让 url 看起来像这样
http://localhost/mediabox/home/box/12/language_name
我的控制器中加载主页并在单击语言链接时更改内容的方法如下
public function box() {
$url = $this->pageURL();
$id_from_url = explode('/', $url);
if (isset($_GET['bid'])) {
$id = $this->input->get('bid');
}
else{
$id = $id_from_url[6];
}
$query = $this->db->get_where('mc_boxes', array('idmc_boxes' => $id));
$row = $query->row();
if (isset($_GET['bid'])) {
$box_id = $this->input->get('bid');
}
else {
$box_id = $row->idmc_boxes;
}
$customer_id = $row->customers_idcustomers;
if (isset($_GET['ln'])) {
$language_id = $this->input->get('ln');
}
else {
$language_id = $row->languages_idlanguages;
}
$template_id = $this->Home_model->getTemplateID($box_id);
$data['template_data'] = $this->Home_model->getTemplateData($template_id);
$data['variables_data'] = $this->Home_model->getVariables($customer_id, $language_id);
$data['titles_data'] = $this->Home_model->getTitles($box_id,$language_id);
$data['categories'] = $this->Home_model->getCategories($customer_id, $language_id);
$data['languages'] = $this->Home_model->getLanguages($box_id);
$this->load->view('template/index', $data);
}
有什么想法吗?
提前致谢
【问题讨论】:
-
嗨 Faryal - 编辑您的旧问题不是更好吗?
:) -
@ Rooneyl 但是当我第一次加载我的主页时我没有那个 ln 变量我是否也需要更改我的路线?
-
@FaryalKhan,只需在控制器中给它一个默认值。例如。公共函数框($box_id, $ln=1) {...}
-
@Rooneyl 我可以从控制器视图中获取变量吗?详情请看我的最新问题
标签: php codeigniter query-string