Yii urlManager和jquery ajax GET请求

时间:2012-04-22 11:11:55

标签: php ajax yii

我在urlmanager中使用seourlmanager类 有一个使用Multicomplete Extension的ajax自动填充字段 扩展发送ajax请求,如'controller / action?term = searchterm' 问题是url manager(seourlmanager)无法处理get查询 在url manager我有这个规则:

'controller/action/<term:.*>'=>'controller/action' 

如何调整网址管理器以使用Multicomplete Extension和seourlmanager?

2 个答案:

答案 0 :(得分:0)

尝试在配置文件中添加通用规则,如下所示:

'<controller:\w+>/<action:\w+>' => '<controller>/<action>',

这与典型的controller/action格式匹配,有或没有其他查询参数。

由于自动填充扩展程序使用?term=searchterm,因此不需要在规则中定义?term

/controller/action?term=searchterm - CORRECT

/controller/action/term - INCORRECT

答案 1 :(得分:0)

我已经改变了seourlmanager类,最后添加了查询字符串:

protected $_query;  
public function init() {  
  ..  
  $this -> _query = (!empty($urlParts['query'])) ? $urlParts['query'] : '';  
  ..  
}  
protected function _connectUrlParts() {
  $scheme = $this -> _scheme . '://';

  $port = (!empty($this -> _port)) ? ':' . $this -> _port : '';
  if($this->_query=='')
    return $scheme . $this -> _host . $port . $this -> _path;
  else
    return $scheme . $this -> _host . $port . $this -> _path.'?'.$this->_query;
}