【问题标题】:how to make ajax request in Yii?如何在 Yii 中发出 ajax 请求?
【发布时间】:2014-06-22 11:34:36
【问题描述】:

我想发出一个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;
    }
}

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

【问题讨论】:

  • 通过向映射到控制器的url 发出请求。
  • @christopher 示例?

标签: php ajax yii


【解决方案1】:

首先,要发出 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,请参阅此 SO 答案以在没有 jQuery 的情况下进行 Ajax 调用:https://stackoverflow.com/a/8567149/911718

【讨论】:

  • 如果您只是发出 AJAX 请求,那么下拉整个 jQuery 工具包是没有意义的。最好只用原生 Javascript 来做。
  • 在 vanilla Javascript 中包含一些示例代码的链接可能值得。
  • 我添加了一个带有两个答案的 SO 答案的链接(带/不带 jQuery 的 ajax 调用)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-27
相关资源
最近更新 更多