如何从发出 Ajax 请求的 CodeIgniter 视图中获取 URI 段?
我正在使用 jQuery 从名为“edit”的视图调用“志愿者”CodeIgniter 控制器的方法,该视图采用单个参数“id”。
该视图的 URI 为: volunteer/edit/3
我像这样调用我的 update()
方法:
$.post('volunteer/update', function(data) {
console.log(data);
});
该方法现在所做的只是回显 URI 段:
public function update(){
echo $this->uri->segment(2, 0);
}
需要的是一个段调用 update()
的视图的 URI(“编辑”视图)。相反,我得到了 update()
的 URI 片段。如何获取编辑视图的 URI 片段,以便可以在 update()
方法中使用它?
I'm using jQuery to call a method of my "volunteer" CodeIgniter controller from a view called "edit" that takes a single parameter, "id"
The URI of the view is:volunteer/edit/3
I make the call of my update()
method like so:
$.post('volunteer/update', function(data) {
console.log(data);
});
All the method does right now is echo a URI segment:
public function update(){
echo $this->uri->segment(2, 0);
}
What is want is a segment of the URI of the view where update()
is called (the "edit" view). Instead, I get a segment of the URI of update()
. How can I get a segment of the edit view's URI so that I can use it within the update()
method?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 来获取引荐来源网址
,然后手动解析它以获取您的分段。
它不是 100% 安全,因为它可以被覆盖(它被服务器设置为标头)。
有关此旧帖子的更多详细信息
You could fetch the referrer URL by using
and than parse it manually to get your segment.
It's not 100% secure, as it can be overriden (its set as an header by the server).
Se more details on this older post
您需要在 AJAX 调用的 POST 数据中传递段值。
您的选项是:
1) 您可以使用 JavaScript 解析 URL 来确定段的值,例如:
2) 您可以使用 PHP 在视图中预填充 JavaScript 变量,然后您可以在视图中使用该变量。 POST
最后在
update()
控制器中,您可以使用$this->input->post()
从 POST 中提取数据,或者从$_POST
。You'll need to pass in the segment value in the POST data of the AJAX call.
Your options are:
1) You can parse the URL w/ JavaScript to determine what the value of the segment is, for example:
2) You can use PHP to pre-populate a JavaScript variable in the view that you can then use in the POST
And finally in the
update()
controller, you can pull out the data out of the POST with$this->input->post()
or out of$_POST
.