gpt4 book ai didi

javascript - 如何从 Codeigniter 中的 URL 请求传递多个变量?

转载 作者:行者123 更新时间:2023-11-30 07:16:16 26 4
gpt4 key购买 nike

对于我网站上的每个用户,他们都有自己的个人资料页面和文章列表。当用户单击其中一个列表项时,会出现动画,然后 AJAX 调用会调出显示文章的 div。同时,我使用一些 javascript 强制更改 URL 以反射(reflect)这一点:

http://www.example.com/UserName/Hello-World-Article

当用户单击浏览器中的后退按钮时,它会调用 javascript 函数以动画形式返回到 ListView 状态。

到目前为止一切顺利。但是假设用户在他们的地址栏中输入上面的 URL 并按下回车键,问题是:

如何将“用户名”和“Hello-World-Article”变量传递到 Codeigniter 并在此上下文中正确使用它们?

最佳答案

抱歉,我对你问题的措辞有点困惑,但我想我明白你想谈的是什么。

首先:阅读 Docs on Controllers . Codeigniter 文档非常棒。

第二:URI 直接路由到 Controller 类名及其函数。

例如:

<?php

class Profile extends CI_Controller {

function item($username = NULL, $title = NULL)
{
if (is_null($username) || is_null($title)) redirect(base_url());

// blah run code where $username and $title = URI segement
}

}

这将产生这个 URL:

 http://www.example.com/profile/item/username/whatever-i-want

然后您可以使用 application/config/routes.php ( docs ) 中的路由删除项目:

 $route['(:any)'] = 'profile/item/$1';

更好的方法(提前阅读):

 $route['profile/(:any)'] = 'profile/item/$1';

最后,这将创建您要查找的 URL:

http://www.example.com/username/whatever-i-want

//http://www.example.com/profile/username/whatever-i-want

我可能需要仔细检查语法错误,但这是 Codeigniter 路由工作原理的基础知识。一旦你的 URL 设置成这样,你就可以用你的 JS 做任何你想做的事情。

但是,我强烈建议不要使用这种方法,因为路由这样的类几乎会使应用程序/站点的其余部分变得无用,除非这是您唯一的 Controller /功能(可能不是这种情况) ) 你有。我认为您最好只在 URL 中以某种方式使用类名。

或者,如果您想以非常规方式跳过路由,也可以像这样使用 index() 和 $this->uri->segment()。

<?php

class Profile extends CI_Controller {

function index()
{
$username = $this->uri->segment(1);
$title = $this->uri->segement(2);
}
}

希望这是有道理的,并能帮助您解决问题。

关于javascript - 如何从 Codeigniter 中的 URL 请求传递多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16424480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com