This worked fine in Yii 1.1.4, but doesn’t now:
<?php
/**
* @brief This widget is a dropDown which can redirect to an url base on selected value via javascript
*/
class DropDownRedirect extends CWidget {
public $name; // name attribute of the dropdownlist
public $select; // selected value
public $data; // data of the dropdownlist
public $htmlOptions = array(); // options of the dropdownlist
public $url; // url with the string $replacement somewhere, wich will be replaced by the current value
public $replacement = '__value__'; // will be replaced by the value
protected function registerScript() {
$script = '$("#'.$this->id.'").change(function(){'
.'$(location).attr("href", "'.$this->url.'".replace("'.$this->replacement.'", $(this).val()));'
.'});';
Yii::app()->clientScript->registerScript(__CLASS__.$this->id, $script);
}
public function init() {
if (! isset($this->name))
$this->name= $this->id;
$this->registerScript();
}
public function run() {
if (!isset($this->htmlOptions['id'])) $this->htmlOptions['id'] = $this->id;
echo CHtml::dropDownList($this->name, $this->select, $this->data, $this->htmlOptions);
}
}
Can any of you spot the error ?