如何在Yii中制作ajax请求?

时间:2014-06-22 11:34:36

标签: php ajax yii

我想创建一个ajax请求,允许用户将一些数据从输入字段发送到数据库,然后将其返回到输入字段,与注释框一样,因此数据应插入数据库然后显示在没有重新加载页面的输入字段中,这是我的代码:

function getHTTPObject(){
   if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
   else if (window.XMLHttpRequest) return new XMLHttpRequest();
   else {
      alert("Your browser does not support AJAX.");
      return null;
   }
}   


// Implement business logic    
function doWork(){    
    httpObject = getHTTPObject();
    if (httpObject !== null) {
        httpObject.open("GET", "a page or a controller action"
                       , true);
        httpObject.send(null); 
    //    httpObject.onreadystatechange = setOutput;
    }
}

那么,如何在不离开整个页面的情况下发出可以调用控制器操作的请求呢?

1 个答案:

答案 0 :(得分:3)

首先,为了发出Ajax请求,我建议你使用jQuery。这会容易得多。

这是一个例子(使用jQuery):

jQuery.getJSON('/path/to/your/controller/someAction/',function(response) {
 console.log('Server reply : ',response);
}

在控制器的操作中,不要忘记将输出发送为json:

public function actionSomeAction()
{
    die(json_encode("This is my response"));
}

编辑:如果你不需要jQuery,请参阅这个没有jQuery进行Ajax调用的答案:https://stackoverflow.com/a/8567149/911718