如何在zend中使用ajax(jquery)从控制器调用函数?

时间:2014-04-11 11:27:41

标签: php ajax zend-framework

这是我的尝试,这是由onclick事件执行的!

var post_array = {
    data_post: postData
}; //Array 
$.ajax({
    url: "location/add-names",
    type: "POST",
    data: post_array,
    success: function (data, textStatus, jqXHR) {
        //data - response from server
    },
    error: function (jqXHR, textStatus, errorThrown) {

    }
});

PHP代码:

<?php

class LocationController extends \Lunchbox\Controller
{
    public function indexAction()
    {
     ...................
    }
    public function addNamesAction(){
        echo 1;
    }
}

路线:

 $location = new Zend_Controller_Router_Route('locatie/:locationUrl/:day', 
            array('module'     => 'default', 'controller' => 'location', 'day' => Cronos::getCurrentDayName()),
            array('day' => Cronos::$weekDayRegex)
        );
        $router->addRoute('location', $location);

我想在ajax事件后显示“1”。但是萤火虫告诉我这个错误:“404 Not Found”。我是zend的新手所以请给我一个合理的答案。谢谢:D

现在debug.log向我展示了这个:

2014-04-14T09:57:09+03:00 CRIT (2): ----------------
2014-04-14T09:57:09+03:00 CRIT (2): URL: /location/add-names
2014-04-14T09:57:09+03:00 CRIT (2): script 'location/add-names.phtml' not found in path (/home/lunchbox/public_html/application/views/scripts/)
#0 /opt/ZendFramework-1.12.3/library/Zend/View/Abstract.php(884): Zend_View_Abstract->_script('location/add-na...')
#1 /opt/ZendFramework-1.12.3/library/Zend/Controller/Action/Helper/ViewRenderer.php(900): Zend_View_Abstract->render('location/add-na...')
#2 /opt/ZendFramework-1.12.3/library/Zend/Controller/Action/Helper/ViewRenderer.php(921): Zend_Controller_Action_Helper_ViewRenderer->renderScript('location/add-na...', NULL)
#3 /opt/ZendFramework-1.12.3/library/Zend/Controller/Action/Helper/ViewRenderer.php(960): Zend_Controller_Action_Helper_ViewRenderer->render()
#4 /opt/ZendFramework-1.12.3/library/Zend/Controller/Action/HelperBroker.php(277): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#5 /opt/ZendFramework-1.12.3/library/Zend/Controller/Action.php(527): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#6 /opt/ZendFramework-1.12.3/library/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('addNamesAction')
#7 /opt/ZendFramework-1.12.3/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#8 /opt/ZendFramework-1.12.3/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#9 /opt/ZendFramework-1.12.3/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#10 /home/lunchbox/public_html/index.php(31): Zend_Application->run()
#11 {main}
有人帮我这个吗?

1 个答案:

答案 0 :(得分:0)

我可以在这里看到几件事。

  1. 您展示的路线是&#39; / locatie /:locationUrl /:day&#39;但是您需要的路线是&#39; / location / add-names
  2. ajax中的
  3. - 您使用的驼峰案例将指示添加名称的URL。大写字母用 -
  4. 分割网址

    希望有所帮助

相关问题