user1772093
user1772093

Reputation: 87

ajax call controller in yii (javascript)

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

Upvotes: 4

Views: 15710

Answers (2)

King Art
King Art

Reputation: 1

try this

url: $(location).attr('pathname') + '?r=anyControllerId/actionId',

This will get the path name of the current URL

Upvotes: -1

darkheir
darkheir

Reputation: 8950

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

Upvotes: 6

Related Questions