1

我遇到了一种情况,我希望能得到一些帮助。

我有一个名为 Site 的控制器,其功能如下:

function getID(){
    $id_data = $this->uri->segment(3);
    $name = $this -> session -> userdata('name');
    echo json_encode($this -> getID_model -> getID($id_data,$name ));
}

我的网址如下所示

 http://myapp.com/index.php?/site/user/96

当链接打开时,用户只能在用户功能运行我的检查时才能看到他的页面。这就是为什么我不能删除或更改 User 函数的原因,因为它需要读取 URI 数据并且需要与我的 getID 函数分开

现在这是我的问题所在。

我需要调用站点控制器中的 getID 函数,它需要第三个 URI id 号。

下面是我的jQuery

    var fullurl = $('#hiddenurl').val() + 'index.php?/site/getID/';

$.getJSON(fullurl, function(json) {
    $.each(json, function(i,d) {
        //do my output stuff.
    });
    $('#_description').append(output);
});

这不起作用,因为控制器需要第三个 URI 段。

有人可以告诉我应该如何将此段添加到 url 中吗?我应该使用某种 JS 解析吗?

谢谢你。

4

2 回答 2

2

您肯定可以访问(或可以访问)$id_data呈现“#hiddenurl”元素的视图中的变量吗?您可以执行以下操作:

<input type="hidden" name="whatever" id="whatever" value="<?php echo site_url("site/getID/$id_data"); ?>">

然后,您将可以轻松访问要在 getJSON() 调用中使用的整个 URL。

var my_url = $('#whatever').val();
// Now my_url should contain something like http://example.com/index.php/site/getID/123

注意:如果你已经加载了 CodeIgniter 的url helper ,你只能使用site_url()而不是更长的时间$this->config->site_url()来生成 URLs ...

于 2013-03-07T03:03:48.430 回答
0

如果你想获得 json 拳头,你需要发送 json 而不是纯文本

function getID(){
 header('Cache-Control: no-cache, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    header('Content-type: application/json');


 $id_data = $this->uri->segment(3);
    $name = $this -> session -> userdata('name');
    echo json_encode($this -> getID_model -> getID($id_data,$name ));
}

这对于 js

var valueofsometing=$('#someitng').val();
var base_url = <?=base_url()?>
  jQuery.ajax({
            url:base_url + "/site/getID/" + valueofsometing,
            async:false,
            type:'GET',
            cache:false,
            timeout:30000,
            success:function (result) {
                $('#joblist').append(result);
                $("select.workflow_class").last().uniform()
                initdrag();
            }
        });
于 2013-03-08T02:19:33.183 回答