Dandelion 发表于 2013-7-10 23:07:04

CI 中 用jquery获取select数据传给php controller,但是调用失败

本帖最后由 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函数用来实现照片的上传。但是这个函数没有调用啊。。。

kinwyb 发表于 2013-7-11 07:44:10

firebug监视AJAX提交动作,看看有没有提交,提交返回内容是什么

Dandelion 发表于 2013-7-11 22:48:07

kinwyb 发表于 2013-7-11 07:44 static/image/common/back.gif
firebug监视AJAX提交动作,看看有没有提交,提交返回内容是什么

404 page not found

kinwyb 发表于 2013-7-12 08:59:42

说明你提交的地址有问题,
firebug里看看提交的地址,是不是正确。
PS:你的JS是直接写在模版里还是JS文件里。。要是JS文件里site_url函数是没用的

Dandelion 发表于 2013-7-12 11:10:13

kinwyb 发表于 2013-7-12 08:59 static/image/common/back.gif
说明你提交的地址有问题,
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中的一部分上传啊。

Dandelion 发表于 2013-7-12 11:16:03

kinwyb 发表于 2013-7-12 08:59 static/image/common/back.gif
说明你提交的地址有问题,
firebug里看看提交的地址,是不是正确。
PS:你的JS是直接写在模版里还是JS文件 ...

还有个问题想问下,就是说我用ajax来提交就相当于屏蔽了form的隐藏submit,改而用js中的ajax提交的url来处理是吧

kinwyb 发表于 2013-7-12 13:25:43

Dandelion 发表于 2013-7-12 11:16 static/image/common/back.gif
还有个问题想问下,就是说我用ajax来提交就相当于屏蔽了form的隐藏submit,改而用js中的ajax提交的url来 ...

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

kinwyb 发表于 2013-7-12 13:30:21

Dandelion 发表于 2013-7-12 11:10 static/image/common/back.gif
我的js是写在一个单独的global.js文件里面的,然后我按照您说的把ajax改成了
$.ajax({
                                url: "http:// ...

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

Dandelion 发表于 2013-7-12 14:21:12

kinwyb 发表于 2013-7-12 13:30 static/image/common/back.gif
是的,你必须还要把图片也提交上去,不然怎么会知道处理什么图片呢。
PS:AJAX上传图片建议使用现成的插 ...

太感谢了,我用了ajaxFileUpload插件,实现了这个功能,第一次在php中调用jquery神马,感谢您~

kinwyb 发表于 2013-7-12 15:25:35

{:soso_e181:}都是新手·``多多交流
页: [1]
查看完整版本: CI 中 用jquery获取select数据传给php controller,但是调用失败