За последние 24 часа нас посетили 37803 программиста и 7849 роботов. Сейчас ищут 1752 программиста ...

Как заменить текст, выводимый скриптом?

Тема в разделе "JavaScript и AJAX", создана пользователем Vladd55, 28 фев 2023.

  1. Vladd55

    Vladd55 Активный пользователь

    С нами с:
    11 дек 2021
    Сообщения:
    88
    Симпатии:
    1
    На сайте есть система комментирования. Для ответа на комментарий используется вот такая форма.
    Для вызова этой формы разработчик сделал скрипт:

    Код (Text):
    1. document.querySelector("body").addEventListener("click", e => {
    2.     if (e.target.closest(".comment__action")) {
    3.       var parent = e.target.closest(".comment");
    4.       var child = parent.querySelector('.comment__expand-branch');
    5.       var parent_id = parent.dataset.id;
    6.       var level = parent.dataset.level;
    7.       var next = parent.dataset.next;
    8.        
    9.       comment_form_data_reply.value = parent_id;
    10.       comment_form_data_level.value = level;
    11.       comment_form_data_next.value = next;
    12.       child.after(comment_form);
    13.      
    14.       comment_placeholder.textContent = "Написать ответ...";
    15.       comment_input_message.innerHTML = "";
    16.       document.getElementById('commentAlert').textContent ='';
    17.       if (user_id !== 0) {
    18.         comment_input_message.focus();
    19.       }
    20.       comment_input_box.classList.add('thesis--empty');      
    21.       comment_send_button.classList.add('v-button--disabled');
    22.       comment_send_button_text.textContent = "Отправить";
    23.       comment_send_button.setAttribute("onclick", "b();");
    24.          
    25.       comment_cancel.innerHTML = "<div onclick=\"q("+parent_id+");\">Цитировать</div><div data-name=\"cancel\" onclick=\"a(true, false);\">Отмена</div>";            
    26.      
    27.       e.stopPropagation(); e.preventDefault();      
    28.       return false;
    29.     }
    30.   });
    Здесь в строке
    Код (Text):
    1. comment_placeholder.textContent = "Написать ответ...";
    фраза "Написать ответ..." жестко прописана и выводится в форму.

    Как сделать так, чтобы в этой строке вместо прямого вывода этой фразы, вызывать специально созданный файл с именем write.php, который бы генерировал другой текст для этой формы?

    (В файле write.php я бы сделал обращение к базе и вынимал бы из нее имя того, кому адресован этот ответ, время и другую инфу, которую показывал бы вместо фразы "Написать ответ...").
    Весьма желательно не использовать jQuery и т.п.
     
  2. Survivor

    Survivor Новичок

    С нами с:
    8 фев 2023
    Сообщения:
    93
    Симпатии:
    19
    Можно конечно дополнительный ajax запрос к серверу создавать и получать данные по ранее сформированному id комментария.
    Но ведь вся доступная информация в принципе и так должна быть(сформирована ранее).
    Потому стоит добавить нужное: логин/дату и прочее.
    Смотри в сторону data
     
  3. Vladd55

    Vladd55 Активный пользователь

    С нами с:
    11 дек 2021
    Сообщения:
    88
    Симпатии:
    1
    Такую информацию можно сформировать заранее, это верно. Но как её впихнуть вместо "Написать ответ..." ? Ведь она зависит от того, кому направлен комментарий. И если даже заранее собрать весь массив, то из него придется сделать выбор. А это, по сути, тоже самое, что и запрос на сервер.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.874
    Симпатии:
    753
    Адрес:
    Татарстан
    Вам подсказали уже... В аттрибут data поместите, при нажатии менять надпись на значение этого параметра