Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Помощь HTML

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Открыть новую тему     Написать ответ в эту тему

IIOPTAJI

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят, я новичок в хтмл, и на этом форуме тоже, песочницу найти не мог.
Я создаю простой блокнот, пишу там всякие коды, которые нашел в интернете, и возник вопрос, как сделать фон чтобы не белый фон был, а какая нибудь картинка. Если что-то не то задал из вопросов, прошу прощения

Всего записей: 4 | Зарегистр. 05-07-2011 | Отправлено: 21:09 09-08-2013
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn
Да без проблем- в
Цитата:
success: function(response){

Будет то, что вернет ваш php скрипт, вставляете результат куда хотите и как хотите.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 11:53 12-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я сделал простейший тестовый скрипт test.php, имитирующий обработку на сервере, вот с таким кодом:
 
<?php include("connect.php");
header("Content-type: text/html; charset=UTF-8");
 
error_reporting(0);
 
        if($_POST['message'] != '' && $_POST['author'] != ''){
 
            $author = $_POST['author'];
            $message = $_POST['message'];
 
            echo "Test =  $author + $message";
        }
 
 
А на странице остался такой код:
<script src="jquery-3.6.0.min.js"></script>
 
<script>
$(function() {
$("#send").click(function(){
  var author = $("#author").val();
  var message = $("#message").val();
  $.ajax({
  type: "POST",
  url: "test.php",
  data: {"author": author, "message": message},
  cache: false,
  success: function(response){
 
  });});
</script>
 
<p>Комментарии к статье</p>
 
<form action="test.php" method="post" name="form">
<p>Автор:<br> <input name="author" type="text" id="author"></p>
<p>Текст сообщения:<br><textarea name="message" rows="5" cols="50" id="message"></textarea></p>
<p><input name="button" type="submit" value="Отправить" </p>
</form>
 
Что-то здесь надо еще изменить, поскольку при вводе происходит просто переход на test.php
 
 
 
 

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 12:41 12-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn
Исправляйте очевидные js ошибки. Проблема с закрытием вложенных скобок.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 18:19 12-03-2022 | Исправлено: Mavrikii, 18:20 12-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, со скобками я лоханулся, сорри...  
 
<script>
$(function() {
$("#send").click(function(){
  var author = $("#author").val();
  var message = $("#message").val();
  $.ajax({
  type: "POST",
  url: "sendMessage.php",
  data: {"author": author, "message": message},
  cache: false,
  success: function(response) { }
});return false;});});
</script>
 
Теперь баланс скобок есть, но не работает все равно...

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 18:42 12-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
но не работает все равно.

А что оно должно делать? Вы же ничего с полученными данными от сервера не делаете, что тогда должно произойти?
Повторюсь - ответ сервера в переменной response.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 18:44 12-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На странице обработчика формируется ответ
echo "Test =  $author + $message";
 
Очевидно, что он и находится в переменной response. Но как его оттуда извлечь, я не знаю.
 
(Пробовал несколько вариантов, но поскольку ничего не сработало, то не стал их здесь и приводить).

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 18:59 12-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Но как его оттуда извлечь, я не знаю.

Не нужно ничего извлекать. Тот текст, что вернул сервер, находится в переменной. Вот и оставляйте его в странице, с помощью jquery, где хотите.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 19:04 12-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я сам не сумею этого сделать. Может быть, Вы подскажете конкретный код?

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 19:18 12-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Может быть, Вы подскажете конкретный код?

да полно примеров же, откуда я знаю что и куда вы вставить хотите..
например, добавить к родителю с id='parent'

Код:
success: function(response) {
$('#parent').append(response);
}

или заменить

Код:
success: function(response) {
$('#parent').html(response);
}


Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 22:29 12-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
да полно примеров же
Честно скажу: я уже четвертые сутки перебираю эти примеры. Но неудачно. Вот и этот Ваш код тоже не заработал.
 

Цитата:
откуда я знаю что и куда вы вставить хотите..
Выше я написал, сейчас просто напоминаю.
 
Обработчик test.php с простейшим кодом:
            $author = $_POST['author'];
            $message = $_POST['message'];
 
            echo "Test =  $author + $message";
 
Код страницы, на которой нужно выводить комментарии:
<script src="jquery-3.6.0.min.js"></script>
 
<script>
$(function() {
$("#send").click(function(){
  var author = $("#author").val();
  var message = $("#message").val();
  $.ajax({
  type: "POST",
  url: "test.php",
  data: {"author": author, "message": message},
  cache: false,
  success: function(response) { НЕ ЗНАЮ ЧТО }
});return false;});});
</script>
 
<form action="test.php" method="post" name="form">
<p>Автор:<br> <input name="author" type="text" id="author"></p>
<p>Текст сообщения:<br><textarea name="message" rows="5" cols="50" id="message"></textarea></p>
<p><input name="button" type="submit" value="Отправить" </p>
</form>
 
Вот там, где в скрипте написано "НЕ ЗНАЮ ЧТО", нужен какой-то код, который выведет информацию, пришедшую от обработчика. Можете  мне его подсказать?

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 23:05 12-03-2022 | Исправлено: Vladsvn, 23:07 12-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Можете  мне его подсказать?

да елки-палки, а я что вам написал??
определитесь что и куда выводить хотите сначала.
в какой кусок ответ сервера, далее - один из примеров.
<div id='parent'></div>
в нужном месте и код метода success я привел выше.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 23:37 12-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ошибка найдена.

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 00:17 13-03-2022 | Исправлено: Vladsvn, 00:24 13-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn
F12 в браузере, смотреть консоль на сообщения об ошибке.

Цитата:
$("#send")

и где же у вас кнопка с id='send'??

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 00:21 13-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Каким-то образом id="send" исчезла... Поэтому у меня никакие варианты и не шли.
 
Теперь, вроде бы, всё ОК.  
Спасибо!

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 00:30 13-03-2022 | Исправлено: Vladsvn, 00:38 13-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
 
Я очень обрадовался, что этот трудный скрипт удалось оживить, но при его использовании  обнаружилось весьма нежелательное свойство: поскольку вывод осуществляется через <div id='parent'></div>, то каждый последующий комментарий уничтожает предыдущий. Точнее, он замещает его. И получается, что такой алгоритм непригоден для системы комментариев.
 
Похоже, что это свойство данного скрипта изменить невозможно.  
 
Так?

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 11:25 13-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn
Вы вообще читаете, что вам пишут? Я зачем написал вариант с .append?
А можете и php скриптом выводить сразу нужное количество комментов с предыдущего раза - вдруг появились еще и чужие.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 12:50 13-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вы вообще читаете, что вам пишут?
Да, очень внимательно читаю и обдумываю каждое Ваше слово. Просто у меня сложилось так, что я 9 лет был вдали от кодинга, так что навыки в значительной мере утрачены и потому недочетов много.
 

Цитата:
А можете и php скриптом выводить сразу нужное количество комментов с предыдущего раза - вдруг появились еще и чужие.
Когда посетитель заходит на страницу, то из базы воспроизводятся все ранее сделанные комменты. После их кода будет стоять <div id='parent'></div> для воспроизведения новых постов, а еще ниже форма. Для воспроизведения новых сообщений можно использовать и {$('#parent').append(response); }, и рнр скрипт - в любом варианте все будет хорошо.
 
Но это еще не всё, что должно быть на странице.
 
Еще нужно обеспечить ответы на комментарии. А для этого в каждом комментарии сделать ссылку "Ответить" и с ней связать другую форму ответа со своим уникальным id="send-123", открывающуюся при клике "Ответить".
И там же прописать свое значение <div id='parent-123'></div>
И еще разместить скрипт с соответствующими значениями #send-123 и parent-123.
Какой при этом потребуется обработчик, я пока что не представляю.
 
Фактически, для каждого комментария и для каждого ответа на комментарий (и для ответа на ответ) придется повторить весь этот скрипт. На 100 постов будет сто форм и скриптов.    
 
Это единственный путь?

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 15:26 13-03-2022 | Исправлено: Vladsvn, 15:44 13-03-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn

Цитата:
Это единственный путь?

нет, не единственный. все можно создавать с помощью js кода, без привязки к уникальным id и тд и тп.
но вы же не думаете, что я буду все это за вас писать?
 
jQuery (как и сам js) позволяет производить кучу манипуляций с DOM структурой страницы - клонировать, переносить, удалять и создавать. вы можете сделать одну форму, не отображаемой, а потом просто вставлять ее где хочется (тот же append к родителю).
и номер поста или ответа не обязательно хранить в id, есть и data- атрибуты для этого. например data-id='число' и тд и тп, который читается через .attr() или .data('id') в jQuery.
 
все возможно, но на вашем уровне знания jQuery это все придется писать мне.
 
смысл в том, что вам не нужно обращаться через определенный id.
когда у вас идет обработка нажатия на кнопку, что $(this) ссылается на сам элемент, на который кликнули.  
мы можете взять эти данные от родителя или другого элемента рядом.
 
просто как пример
https://jsfiddle.net/5edp3fky/
 
можно и вообще с абсолютным позиционированием, плавающую над разными элементами, форму.
 
возможностей куча, даже для каждого элемента создавая свою форму. нужно лишь решить как хочется сделать.

Всего записей: 15700 | Зарегистр. 20-09-2014 | Отправлено: 00:27 14-03-2022 | Исправлено: Mavrikii, 04:35 14-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
но вы же не думаете, что я буду все это за вас писать?
Нет, конечно же... Я вообще не ожидал сложностей с комментированием, поскольку в сети прежде видел наличие готовых решений. Но на практике все это оказалось устаревшим (2005-2012 годы) и неподходящим. Я установил на локалке 17 найденных вариантов и только тогда это выяснилось. За основу взял один - тот, с которым сейчас барахтаюсь.
 

Цитата:
возможностей куча
Прекрасно понимаю, что настоящему профессионалу для решения этой задачи достаточно спинного мозга... и ему смешны мои потуги.
 

Цитата:
просто как пример https://jsfiddle.net/5edp3fky/
Это очень интересный и важный для меня пример.  
Не раз убеждался, что приведенные на jsfiddle скрипты только там и работают. Эти же коды в созданном мною реальном файле не работают - http://fh7929mi.bget.ru/Mavrikii.html . Хотя я даже ту же версию jquery поставил, как в jsfiddle. И непонятно, почему...  
А очень хотелось бы его попробовать. Почему же это не работает?
 
 
 
 
Добавлено:
У меня заработал только такой вариант http://fh7929mi.bget.ru/28.html  Странно - пришлось внести изменение в скрипт. Как же тогда он работает в песочнице?

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 13:53 14-03-2022 | Исправлено: Vladsvn, 18:53 14-03-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашлось и другое решение - скрипт расположить ниже HTML кода.

Всего записей: 351 | Зарегистр. 07-09-2016 | Отправлено: 20:03 14-03-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Компьютерный форум Ru.Board » Интернет » Web-программирование » Помощь HTML


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru