Добавление текста к переменной всегда приводит к тому же порядку

#javascript

#javascript

Вопрос:

У меня есть множественный выбор, и каждый раз, когда происходит событие изменения, я хочу, чтобы значения выбранных элементов div добавлялись к тексту текста. Я использую цикл forEach для запуска ajax-запроса, и ответ каждый раз устанавливается в текстовое поле (в данном случае это текстовое поле). Кажется, не имеет значения, выбираю ли я в порядке section 1 , тогда section 2 или section 2 тогда section 1 два раздела всегда находятся в одном и том же порядке. (раздел 2 поверх раздела 1).

В этом случае значения являются частями буквы. Таким образом, это всегда тело письма поверх вступления, что, очевидно, противоположно тому, что я хочу.

Я думал, что проблема заключалась в команде, которую я использовал для установки значения textarea, но я изменил код, чтобы просто добавить разделы в переменную like body = section (в forEach) и console.log it . Происходит то же самое.

Вот мой код:

 $('#my-select').change(function() {

    //empties the textarea 
    tinymce.get('elm1').setContent("");

    //Array of the selected values
    let codes = $('#my-select').val();

    codes.forEach(function(code) {
      
      let data = {
        action: 'getSectionByCode',
        code: code
      }
      //returns an object
      let sections = $.parseJSON($.ajax({
          url:  '/modules/ajax/ajax_handler.php',
          type: "POST",
          data:data,
          async: false
      }).responseText);

      //Set the contents of the editor to be section.body
      tinymce.get("elm1").execCommand('mceInsertContent', false, sections.body);
      //Alternative tried
      //body  = sections.body

    })

  });
  

Сценарий 1

Senario 2

Таким образом, на каждом изображении разделы справа от мультиселекта расположены в 2 разных порядках, но содержимое слева одно и то же

Жирный текст начинается там, где start of letter начинается. Итак, на каждом изображении он находится внизу

Комментарии:

1. Можете ли вы прикрепить скриншот?

2. Или воспроизводимый пример на codesandbox / codepen / jsfiddle был бы очень признателен

3. @TasosBu я отредактировал его с помощью скриншотов

4. Я считаю, что проблема заключается в методе t mceInsertContent. В нем говорится, что он «вставляет содержимое в положение курсора». Вы пробовали setContent() с prevContent newContent ?

5. @TasosBu я тоже думал, что это проблема. Но, как я уже сказал, если я не использую tinymce и просто присваиваю sections.body переменной, каждый раз она выдает один и тот же порядок. Я не возражаю, если есть способ установить его в правильном порядке в переменную. Потому что тогда я могу использовать переменную

Ответ №1:

Если я правильно понимаю, вы должны иметь возможность сортировать codes массив перед циклом, чтобы определить порядок разделов.