کار با ایجکس در Yii

[right]

باسلام به دوستان ، با توجه به اینکه در این فریم ورک مبتدی هستم به یک مشکل ساده در ارتباط با ایجکس

برخوردم

میخوام به صورت تستی یک مقدار رو از ویو به یک متد تعریف شده تو کنترلر بفرستم و از اون طرف یه چیزی برام چاپ کنه .

این کدها رو تو ویو نوشتم

[/right]




    <?php

        echo    CHtml::button(

                'show deatails',

                array('class'=>'linkClass','name'=>$data->contact_id)

                );

    ?>


    <?php

        Yii::app()->clientScript->registerScript('sendAjaxRequest',"

               $( document ).ready(function() {

               $( '.linkClass' ).click(function( event ) {

               cid = $(this).attr('name');


               $.post('index.php?r=ControllerName/GetDataFeature',{'cid':cid},function(data){

                $('#message').html(data);

              })


       });

    });

    ",CClientScript::POS_READY);

   ?>



[right]این کد رو هم تو قسمت کنترلر مربوط به همون ویو نوشتم [/right]




    public function actionGetDataFeature() {

        echo ' hello hello hello hello hello hello hello ' . $_POST['cid'];

    }



[right]مشکل این کد چیه ؟؟ آیا آدرس دهی در این قسمت درسته ؟؟[/right]

$.post(‘index.php?r=ControllerName/MethodName’

[font="Tahoma"] [rtl]

[/font][right][font="Tahoma"]سلام $.post رو به این صورت تغییر بده:

[/rtl]

[/font][/right][font="Tahoma"]




$.post(".Yii::app()->createUrl('ControllerName/GetDataFeature').", {cid:cid}, function(data){

  	$('#message').html(data);

});



[/font][right][font="Tahoma"][rtl]در ضمن با توجه به اون document.ready که نوشتی دیگه لازم به POS_READY نیست میتونی از POS_END استفاده کنی

[/font][/right][font="Tahoma"][/rtl] [/font]

[right]با تشکر از پاسخ صحیح تون

کد نهایی به این صورت شد [/right]




<?php

Yii::app()->clientScript->registerScript('sendAjaxRequest',"

    $( document ).ready(function() {

        $( '.linkClass' ).click(function( event ) {

            cid = $(this).attr('name');


            $.post('".Yii::app()->createUrl('Contacts/GetDataFeature')."',{'cid':cid},function(data){

                $('#message').html(data);

            })


        });

    });

    ",CClientScript::POS_END);

?>



[right]یه مشکل دیگه هم خوردم گفتم اینجا بگم ، که بقیه هم شاید برخورد کنن با این مشکل

اون هم اینکه تو قسمت اکسس رول ها برای اکشن جدید دسترسی تعیین نکرده بودم و پیش فرض دسترسی نداشت

و من هم بعد درست شدن کد ایجکس باز هم فکر می کردم کد ایجکس مشکل داره ! ;) [/right]