I'm trying to make dynamic form in my module:
I have one field of type select containing some options, and when selecting one option a new field should be added dynamically to the form which in turn will contain another list of options.
here what I try to do but nothing seems to work correctly

<!-- language: lang-php -->

    public function buildForm(array $form, FormStateInterface $form_state) {
        $this->controller = new Place_AdsController();
        $terms = $this->controller->content();

        $form['#attached']['library'][] = 'Place_Ads/general';
        $form['level1'] = array(
            '#type' => 'select',
            '#description' => 'Please select level one term',
            '#options' => $terms,
            '#attributes' => array(
                'class' => array(
                    'mycategory'
                ),
            ),
            '#ajax' => array(
                // Function to call when event on form element triggered.
                'callback' => 'Drupal\Place_Ads\Form\Place_AdsForm::level1SelectedCallback',
                // Effect when replacing content. Options: 'none' (default), 'slide', 'fade'.
                'effect' => 'fade',
                // Javascript event to trigger Ajax. Currently for: 'onchange'.
                'event' => 'change',
                'progress' => array(
                    // Graphic shown to indicate ajax. Options: 'throbber' (default), 'bar'.
                    'type' => 'throbber',
                    // Message to show along progress graphic. Default: 'Please wait...'.
                    'message' => NULL,
                ),
            ),
        );
        return $form;
    }
    public function level1SelectedCallback(array &$form, FormStateInterface $form_state) {
        // Instantiate an AjaxResponse Object to return.
        $ajax_response = new AjaxResponse();
        if ($form_state->getValue('level1') != false) {
            $form['level2'] = array(
                '#type' => 'select',
                '#description' => 'Please select level two term',
                //'#options' => $terms,
                '#attributes' => array(
                    'class' => array(
                        'mycategory'
                    ),
                ),
            );
            $form_state->setRebuild(TRUE);
        }
        
        return $ajax_response;
    }