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

[已解决] CI框架中怎么实用ajax???

  [复制链接]
发表于 2010-10-31 17:44:49 | 显示全部楼层 |阅读模式
本帖最后由 小凡 于 2010-11-28 22:43 编辑

目录

目录
先上传一张图片,这张图片是我的文件目录。
在文件目录hotelmanage/javascript/roomshow.js文件里面代码如下:
// JavaScript Document
function showroomsort(str){
        var xmlHttp=GetXmlHttpObject();       
        if(xmlHttp==null){       
                alert("您的浏览器不支持ajax");
                return;
                }
        var url="dealroomsort";//主要是此处的URL路径我不知道该怎么填写。       
           url=url+"?q="+str;
        url=url+"&x="+Math.random();
        xmlHttp.onreadystatechange=stateChanged;
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);       
        }       
function GetXmlHttpObject(){
        
                var xmlHttp=null;
                try{
                         xmlHttp=new XMLHttpRequest();
                        }catch(e){
                                  try{
                                           xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
                                          }catch(e){
                                                  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                                                  }                               
                         }
                return xmlHttp;
}
function stateChanged(){
       
        //if(xmlHttp.readystate==4){
                document.getElementById("roomshow").innerHTML=xmlHttp.responseText;               
                //}       
        }
上面代码中的处理ajax传送数据的php文件在controllers/cguestorder.php/文件下的dealroomsort函数中,我想问上面的路径该怎么写呢??还有就是下面的这个if判断,总是提示错误xmlHttp is not defined(火狐的firebug提示的)
//if(xmlHttp.readystate==4){
                document.getElementById("roomshow").innerHTML=xmlHttp.responseText;               
                //}
小弟是个新手,做了很多测试仍不能找到解决办法,希望哪个大哥给小弟解决下,谢谢啦
发表于 2010-10-31 20:59:03 | 显示全部楼层
坚决要用绝对地址
 楼主| 发表于 2010-10-31 21:44:22 | 显示全部楼层
本帖最后由 小凡 于 2010-10-31 21:49 编辑

回复 2# jeongee


    可是我用绝对地址的时候怎么提示错误啊,绝对地址要不要从哪里开始写,是这样子么:http://localhost/hotelmanage/index.php/cguestorder/dealroomsort    可是这样子写要是每次改变前面的localhost不是还要更改代码么??
发表于 2010-10-31 22:54:03 | 显示全部楼层
xmlHttp is not defined 这个错误不管路径什么事
 楼主| 发表于 2010-11-1 09:08:02 | 显示全部楼层
回复 4# jeongee


    路径问题解决了  可是为什么在火狐下会提示xmlHttp is not defined 这个错误呢  是那里错误引起的这个错误呢  ??
发表于 2010-11-19 18:29:38 | 显示全部楼层
本帖最后由 sunxch100 于 2010-11-19 18:32 编辑

可以在根目录下新建一个public文件夹,里面存放js,css,images文件夹
将js文件放在js下,例如jquery.js
可以这样引用
<script src="<?php echo base_url();?>public/js/jquery.js";注意public前没有/
使用base_url()函数要引入url助手
在js代码中可以使用绝对地址,要是觉得每次写都麻烦,可以将域名写成全局的。域名可以这样获取
var host_name='';
var host=location.host;//域
var port=location.port;//端口号
host_name='http://'+host+':port';

以后写的话就可以这么写
var url=host_name+'/controller/method/args1/args2';
发表于 2010-11-20 09:35:27 | 显示全部楼层
这个简单呀。做个全局变量
<script>
var site_url="<?php echo site_url();?>";
</script>
发表于 2010-11-21 01:31:23 | 显示全部楼层
我用jq  然后post路径用  控制器/方法/  相对的
发表于 2010-11-25 17:32:59 | 显示全部楼层
我就没明白,ci跟ajax有什么关系。你ajax还不是正常用吗。
加载js时base_url()。路径用site_url();
发表于 2010-11-27 16:11:34 | 显示全部楼层
我就没明白,ci跟ajax有什么关系。你ajax还不是正常用吗。
加载js时base_url()。路径用site_url(); ...
loadinger 发表于 2010-11-25 17:32



    觉得也是 JS 到处可以用

本版积分规则