如何从发出 Ajax 请求的 CodeIgniter 视图中获取 URI 段?

发布于 2024-12-29 18:46:04 字数 552 浏览 0 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蛮可爱 2025-01-05 18:46:04

您可以使用 来获取引荐来源网址

$_SERVER['HTTP_REFERER']

,然后手动解析它以获取您的分段。

它不是 100% 安全,因为它可以被覆盖(它被服务器设置为标头)。

有关此旧帖子的更多详细信息

You could fetch the referrer URL by using

$_SERVER['HTTP_REFERER']

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

无悔心 2025-01-05 18:46:04

您需要在 AJAX 调用的 POST 数据中传递段值。

您的选项是:

1) 您可以使用 JavaScript 解析 URL 来确定段的值,例如:

<script>
var postData;
// assign whatever other data you're passing in
postData.lastSegment = window.location.href.substr(window.location.href.lastIndexOf('/') + 1);
$.post('volunteer/update', postData, function(data) {
    console.log(data);
});
</script>

2) 您可以使用 PHP 在视图中预填充 JavaScript 变量,然后您可以在视图中使用该变量。 POST

<script>
var postData;
// assign whatever other data you're passing in
postData.lastSegment = <?php echo $this->uri->segment(2, 0); ?>;
$.post('volunteer/update', postData, function(data) {
    console.log(data);
});
</script>

最后在 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:

<script>
var postData;
// assign whatever other data you're passing in
postData.lastSegment = window.location.href.substr(window.location.href.lastIndexOf('/') + 1);
$.post('volunteer/update', postData, function(data) {
    console.log(data);
});
</script>

2) You can use PHP to pre-populate a JavaScript variable in the view that you can then use in the POST

<script>
var postData;
// assign whatever other data you're passing in
postData.lastSegment = <?php echo $this->uri->segment(2, 0); ?>;
$.post('volunteer/update', postData, function(data) {
    console.log(data);
});
</script>

And finally in the update() controller, you can pull out the data out of the POST with $this->input->post() or out of $_POST.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文