用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4296|回复: 4
收起左侧

[已解决] CI 中使用ajax的问题

[复制链接]
发表于 2010-5-18 16:29:04 | 显示全部楼层 |阅读模式
处理AJAX的JS文件里返回服务器的URL中不能用PHP语句也就是说不能写base_url()这样的函数,这个问题怎么办?
想到的方法:
1、直接写成http://xxxx/可以但是太麻烦
2、用PHP写那个JS文件,结果调用失败
发表于 2010-5-18 17:01:43 | 显示全部楼层
这个东西和 CI 有什么关系呢???
用纯 PHP 难道能在 .js 里写 PHP 代码??

这个的解决方法只有一个,就是用 PHP 生成 js 语句,否则别无他法。
至于在哪里生成,我觉得在视图里生成比较好,生成一个全局 js 变量,然后在 .js 文件里使用这个全局变量,目前 www.iqwer.com 就是这么用的。
 楼主| 发表于 2010-5-18 16:29:36 | 显示全部楼层
HEX:这个可是CI的问题啊,别再给我转走啊!!
发表于 2010-5-18 21:37:08 | 显示全部楼层
本帖最后由 lcnphp 于 2010-5-18 21:38 编辑

对,我就是这么干的  在视图里定义一个变量  var  base_url = <?php  base_url(); ?>  然后在js文件里调用这个变量,不过这个变量要在js文件引入之前定义好
发表于 2010-5-19 12:56:38 | 显示全部楼层
HTML复制代码
<script language="javascript">
     var  base_url = "<?php  base_url(); ?>";
</script>
<script language="javascript" src="<?php  base_url(); ?>/js/test.js"></script>
复制代码


test.js中
JS复制代码
$(document).ready(function() {
    $('some').click(function() {
             var data_you_set = {
                 //set the data you want to post to the controller_name
             };
            $.post(base_url+'/index.php/controller_name/params',data_you_set,function(ajax_result) {
                //do the operation with the ajax_result
             });
    });
});
复制代码

本版积分规则