Создать ответ 
Построение дерева иерархии или дерева комментариев
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #201
RE: Построение дерева иерархии или дерева комментариев
1. Все работает. Могу предположить, что Вы в теге form забыли прописать name="message".

Вот собственно код целиком, который тестировал:
Код:
<form method="POST" action="" class="add_comment" name="message">
Имя: <input type="text" name="mess_login" maxlength="20" value="" onKeyUp="enter_pass();">
</form>
<div id="admin" style="display: block; display:none; margin: 2px 0px 1px 15px;">
<b>Пароль: </b><input type="password" name="pass" maxlength="20" value="">
</div>

<script type="text/javascript">
function enter_pass() {
if (document.message.mess_login.value=="Администратор") document.getElementById('admin').style.display="block";
else document.getElementById('admin').style.display="none";
}
</script>

2. Странно, это же элементарно, тем более все необходимые данные уже имеются... Замените id="rating_comm'.$tag[$up][$i][0].'">'; на
PHP код:
id="rating_comm'.$tag[$up][$i][0].'" title="Плюсов - '.$tag[$up][$i][4].', минусов - '.$tag[$up][$i][5].'">'; 

3. Кажется проблема в том, что Вы забыли добавить кавычки:
<?php $theme_id="info-1"; include $_SERVER['DOCUMENT_ROOT']."/php/comment.php"; ?>
09.05.2015 20:11:00
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #202
RE: Построение дерева иерархии или дерева комментариев
Здравствуйте,
Насчет третьего пункта все ясно, забыл кавычки Ok.

2. Если меняю строчку id="rating_comm'.$tag[$up][$i][0].'">'; на
Код:
id="rating_comm'.$tag[$up][$i][0].'" title="Плюсов - '.$tag[$up][$i][4].', минусов - '.$tag[$up][$i][5].'">';
то, оценка вообще не работает, т.е. при клике на "Хороший или плохой комментарий" ничего не происходит и title, как на скрине ниже:
[Изображение: tid_135_ocenka_problem.png]

Не работает, хотя данные все имеются Scratch

1. Не работает, странно... В теге form действительно забыл прописать name="message", но изменений нет.
Проверял на чистой html странице - все работает, после ввода "Администратор" появляется поле для ввода с паролем, а тут никакой реакции как будто что-то блокирует вывод поля с паролем. В остальных браузерах также нет изменений.
Пробовал также событие onkeydown добавляя пробел или букву все работает на чистой html/php странице, а на странице, где форма - нет...
10.05.2015 00:44:05
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #203
RE: Построение дерева иерархии или дерева комментариев
1. Попробуйте открыть страничку в IE. Он будет ругаться на неправильный JS код и тогда можно будет понять в какой строке ошибка.
2. Ошибся в названии переменной. Уже исправил, просто скопируйте код заново.
10.05.2015 19:32:27
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #204
RE: Построение дерева иерархии или дерева комментариев
Здравствуйте,

1. Проверял в IETester. Вкладка IE9 закрывается с ошибкой, IE11 - появляется окно ошибки, но пустое и только в IE10 появляется окно, где можно увидеть ошибку.

[Изображение: tid_135_js_error.png]

В IE 10, 11 как только в поле "Имя" набрать 1 букву, то сразу появляется окно ошибки и если кликнуть да и попробовать набрать "Администратор", то все повторяется ...Scratch

Пробовал в строчку кода:
Код:
echo '<div id="admin" style="display: block; display:none; margin: 2px 0px 1px 15px;"><b>Пароль: </b><input type="password" name="pass" maxlength="20" value=""></div>';
прописать значение для value:
Код:
value="'.$_SESSION[comment_mess_login].'"
изменений нет, выдается та же ошибка...


2. Работает, Ok, спасибо!
10.05.2015 23:52:02
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #205
RE: Построение дерева иерархии или дерева комментариев
Разобрался, но только для основной формы пока работает, часть кода:
Код:
echo '<form method="POST" action="'.$mess_url.'#last" class="add_comment" name="message">';
    echo '<div style="padding:2px; text-align: left;">Добавить комментарий:</div>';
echo '<textarea cols="68" rows="5" name="user_text" placeholder="Введите пожалуйста сюда текст">'.$_SESSION[comment_user_text].'</textarea>';
    
    echo '<div style="margin:5px; float:left;">';
echo 'Ваше имя: <input type="text" name="mess_login" maxlength="20" value="'.$_SESSION[comment_mess_login].'" onKeyUp="enter_pass();"></div>';
echo '<div id="admin" style="display: block; display:none; margin: 2px 0px 1px 15px;"><b>Пароль: </b><input type="password" name="pass" maxlength="20" value=""></div><br>';

Если пробую добавлять name="message" в строчку:
Код:
<?php
$cod=rand(100,988); $cod2=rand(10,19);
    echo '<form method="POST" action="'.$mess_url.'#last" class="add_comment" name="message"';
    echo 'name="add_comment" id="hint"><div class="close_hint" title="Закрыть">Закрыть</div>';
то, поле для ввода пароля не появляется совсем...и все комментарии добавляются как обычные...

В данный момент поле для ввода пароля появляется для видимой формы, а для формы с id="hint" не работает...
11.05.2015 11:44:13
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #206
RE: Построение дерева иерархии или дерева комментариев
Так не выйдет. У второй формы уже есть имя - name="add_comment". И к тому же у двух форм не могут быть одинаковые поля name!

Вам надо делать два JS кода с разными именами функций и давать элементам в формах разные name.
11.05.2015 17:25:19
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #207
RE: Построение дерева иерархии или дерева комментариев
Здравствуйте,
Сделал так как вы описали, но работает или только для основной формы или только для 2 формы.
Просьба проверить, что у меня получилось, а весь код можете удалить, чтобы не занимать место...

1. В 1 коде 1 строка:
Код:
else if ($_POST["mess_login"]=="Администратор" and $_POST[pass]!='admin') $_SESSION["send"] = "Неверный пароль!!!";
Кстати, если в 1 коде поле для ввода пароля появляется, а во 2 нет, то при попытке отправить сообщение из 2 формы с именем "Администратор" поле для ввода пароля не появляется, но появляется далее "Неверный пароль" и весь смысл скрипта пропадает, так как "Неверный пароль !!!", как для 1, так и для 2 формы прописывается в 1 коде для 1 и 2 формы.

2. Вставлю весь код из 2 кода (можете удалить после просмотра)

Удалено...

Класс class="add_comment", применяется для стилей,а name="add_comment" имеется только для 2 формы
Код:
echo 'name="add_comment" id="hint"><div class="close_hint" title="Закрыть">Закрыть</div>';

Вчера весь вечер пытался реализовать, но не получается Scratch, например, если прописываю name="hidden" для 2 формы, то поле для ввода пароля в 1 форме не появляется, а во 2 форме появляется.

Заранее благодарен.

P.S.: В коде для наглядности выделял жирным, например, name="hidden", но если на странице, то видно, а в коде, то нет...
(Последний раз сообщение было отредактировано 12.05.2015 в 10:44:56, отредактировал пользователь ale10ey.)
12.05.2015 10:39:29
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #208
RE: Построение дерева иерархии или дерева комментариев
Мда...

Всплывающая форма имеет и класс add_comment и name="add_comment"!

Изменил Ваш код и все работает. Как говорил, нужны разные имена функций, форм и id появляющегося поля.

Код:
<?php
$cod=rand(100,980); $cod2=rand(1,19);
    echo '<div id="last" align="center">';
echo '<form method="POST" action="'.$mess_url.'#last" class="add_comment"';
    echo 'name="add_comment" id="hint"><div class="close_hint" title="Закрыть">Закрыть</div>';
    echo '<div style="padding:2px; text-align: left;">Добавить комментарий:</div>';
echo '<textarea cols="67" rows="5" name="user_text" placeholder="Введите пожалуйста сюда текст своего сообщения...">'.$_SESSION[comment_user_text].'</textarea>';
    echo '<div style="margin:5px; float:left;">';

echo 'Ваше имя: <input type="text" name="mess_login" maxlength="20" value="'.$_SESSION[comment_mess_login].'" onKeyUp="enter_pass2();"></div>';
echo '<div id="admin2" style="display: block; display:none;">Пароль: <input type="password" name="pass" maxlength="20" value=""></div>';

    echo '<div style="margin:5px; float:right;">'.$cod.' + '.$cod2.' = ';
echo '<input type="hidden" name="prov_summa" value="'.md5($cod+$cod2).'">';
echo '<input type="hidden" name="parent_id" value="0">';
echo '<input type="hidden" name="f_parent" value="0">';
echo '<input type="text" name="contr_cod" maxlength="4" size="4" required="required">&nbsp;';
echo '<input type="submit" value="Отправить" title="Отправить сообщение"></div>';
echo '</form>';

echo '<form method="POST" action="'.$mess_url.'#last" class="add_comment" name="message">';
    echo '<div style="padding:2px; text-align: left;">Добавить комментарий:</div>';
echo '<textarea cols="67" rows="5" name="user_text" placeholder="Введите пожалуйста сюда текст своего сообщения...">'.$_SESSION[comment_user_text].'</textarea>';

    echo '<div style="margin:5px; float:left;">';
echo 'Ваше имя: <input type="text" name="mess_login" maxlength="20" value="'.$_SESSION[comment_mess_login].'" onKeyUp="enter_pass();"></div>';
echo '<div id="admin" style="display: block; display:none;">Пароль: <input type="password" name="pass" maxlength="20" value=""></div>';

    echo '<div style="margin:5px; float:right;">'.$cod.' + '.$cod2.' = ';
echo '<input type="hidden" name="prov_summa" value="'.md5($cod+$cod2).'">';
echo '<input type="text" name="contr_cod" maxlength="4" size="4" required="required">&nbsp;';
echo '<input type="submit" value="Отправить" title="Отправить сообщение"></div>';
echo '</form></div>';
    if (isset($_SESSION["send"]) and $_SESSION["send"]!="") {    //вывод сообщения
echo '<div align="center" style="color:red; margin-top: 5px;"><b>'.$_SESSION["send"].'</b></div>';
    $_SESSION["send"]="";
}
$_SESSION[comment_user_text]=''; //обнуление данных после рестарта
$_SESSION[comment_mess_login]='';
?>

<script type="text/javascript">
    function enter_pass() {
    if (document.message.mess_login.value=="Администратор") document.getElementById('admin').style.display="block";
    else document.getElementById('admin').style.display="none";
}
    function enter_pass2() {
    if (document.add_comment.mess_login.value=="Администратор") document.getElementById('admin2').style.display="block";
    else document.getElementById('admin2').style.display="none";
}
</script>
12.05.2015 22:06:26
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #209
RE: Построение дерева иерархии или дерева комментариев
Спасибо, работает Ok Happy Yes

У меня осталось 2 или 3 к Вам вопроса и хотел бы решить их с вашей помощью.

1. В таблице comment хотел бы добавить поле ip, как и для таблицы ocenka_comment. Добавил в таблицу comment поле ip, как и в таблице ocenka_comment и в первом коде изменяю код:

PHP код:
if ($_POST["mess_login"]!='' and $_POST["user_text"]!=''){
if (
is_numeric($_POST["parent_id"]) and is_numeric($_POST["f_parent"]))
    
$res=mysqli_query($db,"insert into comment (parent_id, first_parent, date, theme_id, login, ip, message) values ('".$_POST["parent_id"]."','".$_POST["f_parent"]."','".$time."','".$theme_id."','".$mess_login."','".$_SERVER[REMOTE_ADDR]."','".$user_text."')");
    else 
$res=mysqli_query($db,"insert into comment (date, theme_id, login, ip, message) values ('".$time."','".$theme_id."','".$mess_login."','".$_SERVER[REMOTE_ADDR]."','".$user_text."')"); 
где, добавляю ip и '".$_SERVER[REMOTE_ADDR]."', но в этом случае, данные ip одинаковы для всех сообщений, как на скрине (из таблицы comment):

[Изображение: tid_135_ip_comment.png]

пробовал вместо '".$_SERVER[REMOTE_ADDR]."' прописывать '".$ip."', но в этом случае значение "0"

2. Вопрос насчет отображения формы в браузерах... (скрины сделал с вашего сайта). У меня отображается также.

Например, в браузере Mozilla форма выглядит так:
[Изображение: tid_135_mozilla_forma.png]

а в браузере Opera, Google:
[Изображение: tid_135_google_opera_forma.png]

Понятно, что отступы в разных браузерах высчитывается по разному, но как лучше реализовать данный момент.

Есть вариант на странице указать путь к своей стилевой таблице для конкретного браузера, например:

Код:
<script>
if (window.opera) {
    document.write("<link rel='stylesheet' href='css/opera.css' />")
}
</script>

но может быть есть более радикальный метод и как более правильно с вашей точки зрения реализовать данный момент.

Заранее благодарен.
13.05.2015 11:08:36
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #210
RE: Построение дерева иерархии или дерева комментариев
1. А какой тип данных у ip?
Могу предположить, что int(10), а $_SERVER[REMOTE_ADDR] - varchar!

Следовательно, в БД нужно добавлять так - INET_ATON('".$ip."'), а когда в запросе нужно получить нормальный IP адрес обратно - SELECT date, INET_NTOA(ip) AS ip FROM...

2. Shocked Никогда не задумывался о Mozilla Firefox, т.к. проверял в Опере, IE и Google Chrome. Думал, что и в Firefox будет так же.
Спасибо за указанную недоработку, уже все исправил. Пришлось подшаманить чуть-чуть CSS код.
Тут дело не в отступах, а в отображении textarea. Лечится легко. Вместо <textarea cols="68" rows="5" name="user_text"> сделал <textarea style="width:560px;height:80px;" name="user_text">
13.05.2015 23:00:12
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru