在ZF2控制器中没有响应ajax操作的数据

时间:2015-10-22 07:48:24

标签: php jquery ajax zend-framework2

问题是我在filterAction函数中没有控制器中的数据。

我可以在Post上看到萤火虫:

Source: daterange=2015%2F10%2F22+-+2015%2F10%2F22

在回复:

 {"daterange":null,"submit":null}

在daterange的响应中,我希望成为我在界面中引入的日期范围。

这是ajax调用

     <script type="text/javascript">
    $(function(){
        $('#incidents').bind("submit",function(event) {
            event.preventDefault();

            var urlform = '<?php echo $this->url('incidents', array('controller'=>'IncidentsController', 'action'=>'filter')); ?>';

            $.ajax({
                url: urlform,
                type: 'POST',
                dataType: 'json',
                contentType: "application/json; charset=utf-8",
                async: true,
                data: ($("#incidents").serialize()),
                success: function (data) {
                    console.log(data);
                },
                error: function (data) {
                    console.log(data);
                }
            });
        })
    })
</script>

以下是表格:

    <?php
 namespace Incidents\Form;

 use Zend\Form\Form;

 class IncidentsForm extends Form
 {
     public function __construct($name = null)
     {
         // we want to ignore the name passed
         parent::__construct('incidents');
         $this->setAttribute('method', 'post');


        $this->add(array(
            'type' => 'text',
            'name' => 'daterange',
            'options' => array(
                    'label' => 'Start Time'
            ),
        ));

        $this->add(array(
            'name' => 'submit',
            'type' => 'Submit',
            'attributes' => array(
                'value' => 'Filter',
                'id' => 'submitbutton',
            ),
        ));
     }
 }

这是控制器上的filterAction():

public function filterAction()
{
    $form = new IncidentsForm();
    $request = $this->getRequest();
    $response   = $this->getResponse();

    if ($request->isPost()){
        $form->setData($request->getPost());

        if ($form->isValid()) {
            $formData = $form->getData();
        }
    }

   return $response->setContent(\Zend\Json\Json::encode($formData));
}

我期望在$ formData中拥有我在daterangepicker控件的界面中选择的日期范围。 请问有人可以帮助我吗?

0 个答案:

没有答案