您好我是codeigniter的新手,并尝试简单地将GET变量传递给控制器函数,并让该控制器根据该GET变量字符串搜索数据库。我正在使用ajax来获取带有结果的返回视图,并将其显示在页面上..
我的问题是我有一个链接,其中onclick它将执行这个javascript,如....
function fetchview(query_id2){
$.ajax({
url:'getProjectDetails/'+query_id2,
dataType: "html",
success: function(str){
$("#content").html(str);
}
});
}
链接本身就是......
onclick="('query_id')";
问题是codeigniter AUTOMATICALLY将query_id2传递给'getProjectDetails'函数,将任何+或偶数%20替换为“破折号”字符“ - ”。
这是一个问题,因为我需要查询数据库而不需要任何破折号....
任何可能的解决方法?
我已经尝试过对链接中的'query_id'进行url编码...然后在'getProjectDetails'中进行url解码 - 这不起作用,因为codeigniter仍然用'getProjectDetails'中的短划线替换%20个字符
答案 0 :(得分:2)
我看到您正在尝试将字符串或某个变量传递给CI控制器,获取数据库结果并返回数据。
如果您尝试通过jquery发送查询到php,请使用jQuery post函数,通过POST发送数据。另外,将其与jQuery click event绑定。
示例:
$("#element").click(function() {
var url = "<?=site_url("getProjectDetails")?>";
var query_id = $("#query_id").val();
$.post(url, { 'query_id' : query_id }, function(data) {
$("#content").html(data);
}
});
数据是来自php的html输出。
在CI控制器中,使用以下命令检索query_id:
$this->input->post('query_id');