Начнем потихоньку. Добавлять коды буду по частям, т.к. так легче выловить косяки.
Для начала начнем с кнопки "Ответить" и формы добавления ответа.
Для этого копируем следующий код себе на страничку:
Код:
<script type="text/javascript">
function defPosition(event) {
var x = y = 0;
if (document.attachEvent != null) {
x = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
y = window.event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
}
else if (!document.attachEvent && document.addEventListener) {
x = event.clientX + window.scrollX;
y = event.clientY + window.scrollY;
}
return {x:x, y:y};
}
function comm_on(event,p_id,first_p) {
var event = event || window.event;
document.getElementById('hint').style.left = defPosition(event).x - 550 + "px";
document.getElementById('hint').style.top = defPosition(event).y + 15 + "px";
document.add_comment.parent_id.value = p_id;
document.add_comment.first_parent.value = first_p;
document.getElementById('hint').style.display = 'block'
}
function comm_off() {
document.getElementById('hint').style.display ="none"
}
</script>
Данный код предназначен для показа/скрытия формы добавления ответа к комментарию, а так же задает положение формы для ответа (в нашем случае чуть ниже и правее самой кнопки "Ответить").
Тут ничего сложного нет, просто добавляем и все.
Далее добавляем саму форму ответа. Изначально она не видна и появляется только при клике на кнопку "Ответить" (о том, как ее добавить напишу в конце, т.к. там не все так просто. Пока для тестирования используйте <span class="size14" o
nClick="comm_on(0,1,2)">Ответить</span>).
Пример формы:
Код:
<div id="hint" style="position:absolute; display: none;">
<?php echo '<form name="add_comment" method="POST" action="'.$_SESSION[mess_url].'#last">'; ?>
<table border="0" style="border: 1px solid #4874a3; border-radius:8px;" bgcolor="#7799ee" cellspacing="4" align="center">
<tr>
<td colspan="2" align="right"><b><font color="red" onClick="comm_off()">Закрыть</font></b><br>
<?php
$prov_cod=rand(100,980); $prov_cod_2=rand(1,19);
echo '<textarea cols="65" rows="5" name="user_text" required>'.$_SESSION[comment_user_text].'</textarea>';
echo '</td></tr><tr><td width="300">';
echo '<b>Ваше имя: </b><input type="text" name="mess_login" maxlength="20" value="'.$_SESSION[comment_mess_login].'" required>';
echo '</td><td align="right">';
echo '<b>'.$prov_cod.' + '.$prov_cod_2.' = </b>';
echo '<input type="hidden" name="prov_summa" value="'.md5($prov_cod+$prov_cod_2).'">';
?>
<input type="text" name="contr_cod" maxlength="4" size="4" required>
<input type="hidden" name="parent_id" value="0">
<input type="hidden" name="first_parent" value="0">
<input type="submit" value="Отправить">
</td>
</tr>
</table>
</form>
</div>
Данная форма очень похожа на обычную форму добавления комментариев, но в ней появляются дополнительные скрытые поля, ссылка "закрыть" имя самой формы и вся форма помещается в невидимый блок.