Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have some app on Yii. I want to implement ajax calls on click of div. I've found some docs with form ajax validation, but it'snot clear for me, how can I do what I want. That's what I did:

$(document).on('click','div.lessonDiv', function()
    {
       $.ajax(
        {
            type: "POST",
            url: "../../protected/controllers/AjaxController.php",
            success: function(data, textStatus, jqXHR)
            {
                console.log(data);
            }
        });
}

That says that the directory is forbidden. Where should I put file which is able to interact with ajax? Or it alreay has it?
UPDATE I'm using version 1.1.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
284 views
Welcome To Ask or Share your Answers For Others

1 Answer

You shouldn't call files directly, Yii doesn't work this way. It is MVC framework with controllers and actions and it uses routes, also for AJAX request. So you should add an action to AjaxController and call createUrl to get it's URL.

PHP

class AjaxController extends CController
{
    public funcion actionDoThing()
    {
        // Get request object
        $request = Yii::app()->request;

        // Check if request is acceptable
        if ($request->isPost && $request->isAjaxRequest)
        {
            echo CJSON::encode(array('hello'=>'world'));
        }
        // else
        // {
        //     throw new CHttpException(403);
        // }
    }
}

JS

$(document).on('click','div.lessonDiv', function() {
    $.ajax({
        type: "POST",
        url: <?php echo $this->createUrl('ajax/doThing'); ?>,
        success: function(data, textStatus, jqXHR) {
            console.log(data);
        }
    });
});

I'd recommend to read Yii guide more closely. It is also available in Russian


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...