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

[已解决] CI 中 用jquery获取select数据传给php controller,但是调用失败

[复制链接]
发表于 2013-7-10 23:07:04 | 显示全部楼层 |阅读模式
本帖最后由 Dandelion 于 2013-7-12 14:22 编辑

最近刚接触CI,遇到了一个问题,用户通过select选择图片上传到的哪个文件夹,就是form在提交时候,通过用jquery来获取用户的select value值,然后用ajax将value值来post到php,但是php中的函数老是调用失败,什么原因呢。
$('#submit').click(function(){
                        
                        var name = $('#userfile').val();
                        if(!name){
                                alert('Please choose one file.');
                                return false;
                        }
                        var form_data = {
                                tableid: $('#tables_select').val()
                        };
                        alert($('#tables_select').val());
                        $.ajax({
                                url: "<?php echo site_url('gallery/uploadimage'); ?>",
                                type: 'POST',
                                data: form_data,
                                success: function(msg){
                                        alert(msg);
                                }
                });

                        return false;
                });

});

其中的gallery这个controller里面有uploadimage函数用来实现照片的上传。但是这个函数没有调用啊。。。
发表于 2013-7-11 07:44:10 | 显示全部楼层
firebug监视AJAX提交动作,看看有没有提交,提交返回内容是什么
 楼主| 发表于 2013-7-11 22:48:07 | 显示全部楼层
kinwyb 发表于 2013-7-11 07:44
firebug监视AJAX提交动作,看看有没有提交,提交返回内容是什么

404 page not found
发表于 2013-7-12 08:59:42 | 显示全部楼层
说明你提交的地址有问题,
firebug里看看提交的地址,是不是正确。
PS:你的JS是直接写在模版里还是JS文件里。。要是JS文件里site_url函数是没用的
 楼主| 发表于 2013-7-12 11:10:13 | 显示全部楼层
kinwyb 发表于 2013-7-12 08:59
说明你提交的地址有问题,
firebug里看看提交的地址,是不是正确。
PS:你的JS是直接写在模版里还是JS文件 ...

我的js是写在一个单独的global.js文件里面的,然后我按照您说的把ajax改成了
$.ajax({
                                url: "http://localhost:8081/xieyi/gallery/uploadimage",
                                type: 'POST',
                                data: form_data,
                                success: function(msg){
                                        alert(msg);
                                }

});
然后就显示提交成功了,但是后面要上传照片么,后面的uploadimage会调用ci中的do_upload,然后返回就变成了你未选择图片,我是不是要在ajax里面把图片也作为data中的一部分上传啊。
 楼主| 发表于 2013-7-12 11:16:03 | 显示全部楼层
kinwyb 发表于 2013-7-12 08:59
说明你提交的地址有问题,
firebug里看看提交的地址,是不是正确。
PS:你的JS是直接写在模版里还是JS文件 ...

还有个问题想问下,就是说我用ajax来提交就相当于屏蔽了form的隐藏submit,改而用js中的ajax提交的url来处理是吧
发表于 2013-7-12 13:25:43 | 显示全部楼层
Dandelion 发表于 2013-7-12 11:16
还有个问题想问下,就是说我用ajax来提交就相当于屏蔽了form的隐藏submit,改而用js中的ajax提交的url来 ...

按照你的JS中的写法是的,你在JS中用了return false;这样原本的form提交就会被放弃

发表于 2013-7-12 13:30:21 | 显示全部楼层
Dandelion 发表于 2013-7-12 11:10
我的js是写在一个单独的global.js文件里面的,然后我按照您说的把ajax改成了
$.ajax({
                                url: "http:// ...

是的,你必须还要把图片也提交上去,不然怎么会知道处理什么图片呢。
PS:AJAX上传图片建议使用现成的插件。自己写比较麻烦

 楼主| 发表于 2013-7-12 14:21:12 | 显示全部楼层
kinwyb 发表于 2013-7-12 13:30
是的,你必须还要把图片也提交上去,不然怎么会知道处理什么图片呢。
PS:AJAX上传图片建议使用现成的插 ...

太感谢了,我用了ajaxFileUpload插件,实现了这个功能,第一次在php中调用jquery神马,感谢您~
发表于 2013-7-12 15:25:35 | 显示全部楼层
{:soso_e181:}都是新手·``多多交流

本版积分规则