Solved thread

This post is marked as solved. If you think the information contained on this thread must be part of the official documentation, please contribute submitting a pull request to its repository.

Action runs twice after Ajax callback

Hi there,

I'm calling back via AJAX to a controller/action to have it render some markup that I want to inject into the DOM in the Ajax success handler. My code appears to work fine except that it executes twice? I suspect I am doing something wrong but if anyone has any ideas as to what that might be, I'd appreciate it! :)

  public function priceTablesAction()
  {
    if ($this->request->isPost() && $this->request->isAjax()) {

      $this->get_session_booking_data();

      $package_id = intval($this->request->getPost('package_id', 'int'));
      $booking_date = $this->request->getPost('booking_date', 'string');
      $booking_date_int = strtotime(str_replace('/', '-', $booking_date));
      $form = new PackageDateForm($this->session_booking_data->packages->value);

      $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);

      $this->view->setVar('form', $form);
      $this->view->setVar('package_id', $package_id);
      $this->view->setVar('booking_date_int', $booking_date_int);
      $this->view->start();
      $this->view->render('booking', 'priceTables');
      $this->view->finish();

      $markup = $this->view->getContent();

      $this->view->disable();

      echo json_encode($markup);
    }
  }

My callback code is really simple:

            $.post('booking/priceTables', { 'booking_date' : booking_date, 'package_id' : package_id },
                function(data) {
                  // Do something here ...
            });

Thanks.



22.5k
Accepted
answer

I'm happy to say that this is not a Phalcon issue. The onChangeDateTime event in the datetimepicker (http://xdsoft.net/jqplugins/datetimepicker/) was firing twice! Phalcon was simply following instructions! :)

Phalcon is really awesome!!