Yii Framework Forum: Асинхронное Изменение Ссылки И Текста Ajaxlink - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Асинхронное Изменение Ссылки И Текста Ajaxlink Rate Topic: -----

#1 User is offline   rakdosss 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 17-January 13

Posted 17 January 2013 - 05:35 AM

Необходимо создать ajaxLink такой, чтобы после клика по этой самой аяксовой ссылке сама ссылка и текст, который видит пользователь, изменялись.

Сейчас в контроллере имеется код:

public function actionAUP($id)
	{
		Projects::model()->addUserProject($id);
		$urlDUP = Yii::app()->createUrl('//project/projects/DUP',array('id'=>$id));
		$labelDUP = 'Unsubscribe';
		echo CHtml::ajaxLink($labelDUP,
		   $urlDUP, 
		    array('type' => 'POST',
				 'update' => '#mposter',
				 'success' => "function( data )
							  {
								alert(data);
								$('#mposter').html(data);
							  }",
				)
				
			);
	}

	public function actionDUP($id)
	{
		Projects::model()->delUserProject($id);
		$urlAUP = Yii::app()->createUrl('//project/projects/AUP',array('id'=>$id));
		$labelAUP = 'Subscribe';
		echo CHtml::ajaxLink($labelAUP,
		   $urlAUP, 
		    array('type' => 'POST',
				 'update' => '#mposter',
				 'success' => "function( data )
							  {
								alert(data);
								$('#mposter').html(data);
							  }",
				)
				
			);
	}


А в представлении:

echo CHtml::ajaxLink($label,
		   $url, 
		    array('type' => 'POST',
				'data'=>array('update'=>TRUE),
				 'update' => '#mposter',
				 'success' => "function( data )
							  {
								alert(data);
								$('#mposter').html(data);
							  }",
				)
				
			);


Ссылка в диве не меняется ни при каких условиях, хотя должна.
Прошу вашей помощи.
0

#2 User is offline   j0ker_ 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 44
  • Joined: 22-December 10
  • Location:Russia, Yaroslavl

Posted 21 January 2013 - 07:48 AM

Я бы сделал так (пример):
В контроллере:
    public function actionChangeLink()
    {
        if (Yii::app()->request->isAjaxRequest){
            echo json_encode(
                array('title' => 'Unsubscribe', 'url' => 'newurl')
            );
        }
    }


В представлении:
<?php
echo CHtml::ajaxLink('Subscribe', 'site/changelink',
    array(
        'type' => 'POST',
        'dataType'=>'json',
        'success' => "function(data){
                $('#yt0').attr('href', data.url);
                $('#yt0').html(data.title);
            }",
        )
);
?>


Т.е. не нужно передавать в ответе запроса всю разметку, так же можно использовать не два действия, а одно передав ему параметр.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users