代码点火器重写用html编码字符获取参数

时间:2010-11-03 18:54:34

标签: php codeigniter

您好我是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个字符

1 个答案:

答案 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');