Всем привет. При успешной вставке поста в бд, на страницу вставляется пост: Код (Javascript): $('.add_new_post').after(function() { return '<div class="post" id="4"> \ <div class="post_head"> \ <img src="" class="author_img" alt=""> \ \ <div class="post_info"> \ <h5><a href="#" class="author"></a></h5> \ <span class="when"></span> \ </div> \ \ <div class="option"> \ <i class="fa fa-ellipsis-h" aria-hidden="true"></i> \ </div> \ </div> \ </div>'; }); Методом, "помню что обратный слэш экранирует" подставил слэши в конце каждой строки и всё начало работать. У меня возник вопрос. Это не все div-ы, еще строк 15, и на каждой ставить слэш времязатратно. Есть ли более изящный способ?
обычно данные заносят в бд, после экранируя от хтмл верстки, вставляют в шаблон веб интерфейса. Ибо после 10 раза прочтения вашего поста, так и не вкурил смысл покорения человечества.
Хочу переложить ответственность по генерации разметки нового поста на js. При нажатии на "добавить пост" посылается Ajax запрос, на сервере вставляется запись в бд и возвращается в клиент массив с данными нового поста. На клиенте формируется разметка, заполняется данными из массива и на странице появляется новый пост.
Ну так надо и писать, так как и говорите. На странице сформировать разметку, но выводить ее при условии, что вернулся с сервера массив, и в нем есть данные, и выводить их.
@виталий032, во-первых, подобная разбивка необходима лишь для "читабельности", следовательно, можно и не жать лишний раз Enter, хотя, конечно, разбивка и отступы - правильно... но для этого есть методы (или 'some string' + Enter 'string' + Enter 'some string', или см.п3); во-вторых, js вполне может "перевод строки" (обычный \n, добавляемый текстовым редактором) воспринять как точку с запятой (для предотвращения этого и используется в данном контексте символ '\'); в-третьих, формировать DOM-элемент html разметки можно предназначенными для этого методами.