ajax call controller in yii (javascript)

15,615

Try to put

<? echo Yii::app()->createUrl('Explicacao/ajaxRequest'); ?>

instead of

<? echo Yii::app()->createUrl('explicacaoController/ajaxRequest'); ?>

The thing is in create url you need to put the Controller ID not the Controller full name.

If it's not working you could try both Explicacao/ajaxRequest or explicacao/ajaxRequest because your rout could be case sensitive depending on your conf

Share:
15,615
user1772093
Author by

user1772093

Updated on August 15, 2022

Comments

  • user1772093
    user1772093 over 1 year

    For some reason this doesnt work and I can't find a way to make it work!

    on my controller named "ExplicacaoController" I have this:

    public function accessRules()
    ...
    'actions'=>array('index','view', 'test', 'ajaxrequest'),
    ...
    public function actionAjaxRequest()
        {
          $val1 = $_POST['val1'];
          $val2 = $_POST['val2'];
          echo "something";
    
          Yii::app()->end();
        }
    

    On my view I have:

    <script type="text/javascript">
    ...
    $.ajax({
          type: "POST",
          url:    "<? echo Yii::app()->createUrl('explicacaoController/ajaxRequest'); ?>",
          data:  {val1:1,val2:2},
          success: function(msg){
               alert("Sucess")
              },
          error: function(xhr){
          alert("failure"+xhr.readyState+this.url)
    
          }
        });
    ...
    

    What happens is that I allways get this error:

    failure4<? echo Yii::app()->createUrl('explicacaoController/ajaxRequest'); ?>
    

    I really need some help with this

  • darkheir
    darkheir over 11 years
    Could we see your url rules from the config? And did you try 'actions'=>array('index','view', 'test', 'ajaxRequest'), putting upper case for "ajaxrequest" ?