【问题标题】:Ajax call with Time interval zend framework使用时间间隔 zend 框架的 Ajax 调用
【发布时间】:2012-07-11 15:09:47
【问题描述】:

我想要做的基本上是每 3 秒检索一次 div 和 sub div 内容。我正在使用 ajax 将数据发送到控制器。但我得到了

$.ajax is not a function
http://localhost/index/editor
Line 25

这是我正在使用的代码。

<script type="text/javascript">
    window.setInterval(getAjax, 3000);

    function getAjax() {
        $.ajax({
            type: "POST",
            url: 'localhost/index',
            data: "some-data"     
        });
    }

</script>

1) 我做错了什么

2) 如何在zend控制器中接收数据

【问题讨论】:

  • 你是否包含了 jQuery(或 Zepto)?
  • Jquery 包含在我的默认布局中,我禁用了它。有影响吗?

标签: jquery ajax zend-framework request nstimeinterval


【解决方案1】:

一旦 jQuery 包含在您的页面中,您就可以使用 $.ajax() 函数。之后,在您的控制器中,您可以访问 $_POST 变量中的数据。为了方便起见,我通常使用 JSON 对象向控制器发送数据:

    <script type="text/javascript">
        window.setInterval(getAjax, 3000);

        var data = {};
        data['field1'] = 'value1';
        data['field2'] = 'value2';
        function getAjax() {
            $.ajax({
                type: "POST",
                url: 'localhost/index',
                data: data    
            });
        }

    </script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript">

并且在您的控制器中,您可以使用 _getParam 来查找值:

public function ajaxAction() {
    //Disable the view (if this is an AJAX call)
    if($this->getRequest()->isXmlHttpRequest()) {
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender();
    }

    //Get posted data
    $field1 = $this->_getParam('field1');
    $field2 = $this->_getParam('field2');

    if($field1=='value1') {
        $jsonResp['isValid'] = 1;
        $jsonResp['gotValue'] = $field2;
    }
    header('Content-type: application/json');
    echo Zend_Json::encode($json);
}

编辑: 哦,我忘了,你可能想检查你的控制器从你的 jQuery 代码发送的响应。您可以通过以下方式实现这一目标

$.ajax({
//...
success: function(jsonResp) {
    if(jsonResp['isValid']) alert(jsonResp['gotValue']);
}
});

【讨论】:

    【解决方案2】:

    $.ajax 由 jQuery 定义。您必须在调用此函数之前包含它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多