我遇到过一种情况,我希望得到一些帮助。
我有一个名为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
当链接打开时,用户只有在用户功能运行我的支票时才能看到他的页面。这就是我无法删除或更改用户功能的原因,因为它需要读取URI数据并需要与我的getID函数分开
现在我的问题出现了。
我需要调用Site控制器中的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);
});
这不起作用,因为控制器需要第3个URI段。
有人可以告诉我应该如何将此细分添加到网址中吗?我应该使用某种JS解析吗?
谢谢。
答案 0 :(得分: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()
来生成网址...
答案 1 :(得分: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();
}
});