2012-04-20 124 views
1

我已经安装importcsv模块并且importcsv页面加载正常。我加载url时出现文件上传按钮 - https://web/importcsvYii importcsv模块头疼

我上传了一个文件,并且出现了ajax“loading”文本,但是ajax响应结果是我网站的整个布局以及默认importcsv上传页面而那什么,我会承担应该在importCsvFirstStepResult DIV加载(“下一步”字段),之后在download.js Ajax请求完成

... 
    onComplete : function(file, response) { 
     this.enable(); 
     $("input#fileName").val(file); 
     $("div#importCsvFirstStepResult").html(response); 
    } 

的/ importcsv /默认/上传Ajax响应明显包含错误的布局,未能检测到请求,或者?并将该默认视图加载到响应div,菜单和全部。我对Yii相当陌生,所以也许这是显而易见的。

感谢您的协助。

回答

2

解决了我自己的问题。 ajax问题是由于我调整了(打破)了我的urlManager规则。我更改了原始规则以适应表上的非数字主键。例如,要观察病人的网址应该https://web/patients/view/ABC_1234代替https://web/patients/view/1234

我倾向于使用现有的我的客户数据库架构设置现在的样子,他们正在使用一个非数字的主键在可能和DB模式。我想继续这个由于某些原因,所以我不得不编辑url params \ d只匹配数字。不幸的是,将它改为\ w也匹配了一些Ajax请求,并且破坏了整个事情。

Yii原始规则。工作正常,但对于字母数字的主键不起作用:

'rules'=>array(
       '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
       '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
       '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
      ), 

首先,我把它改成下面,处理字母数字外键,但是这打破了一些Ajax:

'rules'=>array(
       '<controller:\w+>/<action:\w+>/<id:\w+>'=>'<controller>/<action>', 
       '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
       '/gii'=>'/gii/default/login', 
     ), 

最后到达以下,这使得AJAX模块正常运行,并处理我的非数字键:

'rules'=>array(
    '/libraries/<action:\w+>/<id:\w+>'=>'/libraries/<action>', 
    '/patients/<action:\w+>/<id:\w+>'=>'/patients/<action>', 
    '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
), 

我最终明确设置规则只为需要它的控制器。他们大多数使用整数主键

希望这可以帮助别人。我是Yii的新手,当我改变规则时,并没有完全理解Yii中的规则和ajax系统。

干杯

+0

恭喜您!如果可以,请确保将您的答案标记为“已接受”,以便其他人能够从您的成功中学习。干杯〜 – 2012-04-25 16:14:44

+0

感谢您的提示。 – glyph 2012-04-26 14:29:05