Прежде всего, вы всегда должны пытаться создавать нормализованные URL.
Но я думаю, что ваше сомнение заключается в #
, который генерируется / добавляется. Если вы пойдете и посмотрите источник yii ajaxLink, вы увидите следующее:
public static function ajaxLink($text,$url,$ajaxOptions=array(),$htmlOptions=array())
{
if(!isset($htmlOptions['href']))
$htmlOptions['href']='#';
$ajaxOptions['url']=$url;
$htmlOptions['ajax']=$ajaxOptions;
self::clientChange('click',$htmlOptions);
return self::tag('a',$htmlOptions,$text);
}
, поэтому, если вы не установите свойство href
тега a
в массиве htmloptions
, будет добавлено #
.
Вы также должны понимать, что yii использует jquery, поэтому, если вы проверите исходный код страницы, вы увидите внизу, как jquery используется для выполнения запроса ajax, ваш фактический URL, который вызывается, также будет виден в этот сценарий. Таким образом, третий параметр / параметр в ajaxLink
предназначен для параметров функции jquery ajax
. Используя эту опцию, вы можете создавать более качественные AJAX-ссылки.
Независимо от того, куда (на какой контроллер) указывает ваш URL в вашем проекте, будет вызываться действие, связанное с этим URL.
Так или иначе, вы можете изменить свой код следующим образом, если хотите, чтобы отображался URL, а не #
:
echo CHtml::ajaxLink('GO', 'http://localhost/index.php?r=user/delete',
array('type'=>POST), //there are various other options for jquery ajax
array('href'=>'http://localhost/index.php?r=user/delete'));
Чтобы сделать AJAX-ссылки лучше, я бы посоветовал ознакомиться с документацией JQuery AJAX. Существует опция для функции success
, которую вы можете использовать, чтобы сообщить пользователю о завершении операции.
Надеюсь, это поможет, не стесняйтесь оставлять комментарии, если я не полностью ответил на ваш вопрос.