Я отчаянно пытаюсь добавить поля ответа в раздел комментариев уже пару дней - в основном я хочу, чтобы поле ответа (div) появлялось, как только вы нажимаете определенную кнопку.Я подумал, что стоит использовать обработчик событий onclick.
Мы уже находимся в php-эхо, поэтому я подумал, что было бы легко просто добавить идентификатор строки (cid) к фактическому элементу div и кнопке.id - оказывается, что он не работает ..
Добавлен myFunction () для кнопки
Добавлен "myDIV", чтобы проверить, будет ли код работать с этим простым div - он делает
Добавлен идентификатор для распечатки названия div и кнопки, в то время как добавлен «cid» для лучшего обзора в браузере (cid в brwoser были, как и ожидалось) - наконец, я избавился от кода и просто предупредил cidи был очень удивлен, что это был номер, которого я не ожидал .. это был последний cid из базы данных
if($usermatchcom1 = $usermatchcom->fetch_assoc()){
echo "<div class='comment_box'><p>";
echo $usermatchcom1['uidusers']."<br>";
echo $comments1['date']."<br>";
echo nl2br($comments1['message']);
echo "</p>";
if(isset($_SESSION['userid'])){
if($_SESSION['userid'] == $usermatchcom1['idusers']){
echo "<form class='delete_form' method='POST' action='".deletecomments($conn)."'>
<input type='hidden' name='cid' value='".$comments1['cid']."'>
<input type='hidden' name='sid' value='$sid'>
<input type='hidden' name='sname' value='$sname'>
<button type='submit' name='deletesubmit'>Delete</button>
</form>
<form class='edit_form' method='POST' action='editcomment.php'>
<input type='hidden' name='cid' value='".$comments1['cid']."'>
<input type='hidden' name='uidcomments' value='".$comments1['uidcomments']."'>
<input type='hidden' name='uidname' value='".$comments1['uidusers']."'>
<input type='hidden' name='date' value='".$comments1['date']."'>
<input type='hidden' name='message' value='".$comments1['message']."'>
<input type='hidden' name='sid' value='$sid'>
<input type='hidden' name='sname' value='$sname'>
<button>Edit</button>
</form>";
}else{
echo "<form class='reply_form' method='POST' action='replycomment.php'>
<input type='hidden' name='uidcomments' value='".$comments1['uidcomments']."'>
<input type='hidden' name='date' value='".$comments1['date']."'>
<input type='hidden' name='cid' value='".$comments1['cid']."'>
<input type='hidden' name='sid' value='$sid'>
<input type='hidden' name='sname' value='$sname'>
<input type='hidden' name='message' value='".$comments1['message']."'>
<button>Reply</button>
</form>";
}
}else{
echo "<p class='replymessage'>You need to be logged in to reply</p>";
}
echo "</div>";
}
foreach($replymatch as $replymatch1){
echo "<div class='reply_box'><p>";
echo $replymatch1['uidusers']."<br>";
echo $replymatch1['date']."<br>";
echo nl2br($replymatch1['message']);
echo "</p><br>";
if(isset($_SESSION['userid'])){
if($_SESSION['userid'] == $replymatch1['uidcomments']){
echo "<form class='delete_form' method='POST' action='".deletecomments($conn)."'>
<input type='hidden' name='cid' value='".$comments1['cid']."'>
<input type='hidden' name='sid' value='$sid'>
<input type='hidden' name='sname' value='$sname'>
<button type='submit' name='deletesubmit'>Delete</button>
</form>
<form class='edit_form' method='POST' action='editcomment.php'>
<input type='hidden' name='cid' value='".$comments1['cid']."'>
<input type='hidden' name='uidcomments' value='".$comments1['uidcomments']."'>
<input type='hidden' name='date' value='".$comments1['date']."'>
<input type='hidden' name='message' value='".$comments1['message']."'>
<input type='hidden' name='sid' value='$sid'>
<input type='hidden' name='sname' value='$sname'>
<button>Edit</button>
</form>";
}else{
echo "<form class='reply_form' method='POST' action='replycomment.php'>
<input type='hidden' name='uidcomments' value='".$comments1['uidcomments']."'>
<input type='hidden' name='date' value='".$comments1['date']."'>
<input type='hidden' name='cid' value='".$comments1['cid']."'>
<input type='hidden' name='sid' value='$sid'>
<input type='hidden' name='sname' value='$sname'>
<input type='hidden' name='message' value='".$comments1['message']."'>
<button>Reply</button>
</form>
<button id='test_".$replymatch1['cid']."' onclick='myFunction()'>Test</button>";
}
}else{
echo "<p class='replymessage'>You need to be logged in to reply</p>";
}
echo "</div>";
echo "
<style>
.replytest_".$replymatch1['cid']."{
width: 400px;
margin-left: 50px;
max-height: 200px;
overflow: hidden;
background: #fff;
color: black;
}
.replytest_".$replymatch1['cid'].".open{
max-height: 80px;
color: red;
}
#myDIV {
width: 400px;
margin-left: 50px;
max-height: 200px;
overflow: hidden;
background: #fff;
color: black;
}
</style>";
echo "
<div id='myDIV'>
This is my DIV element.
</div>
<br>
<p id='testtext'>Divs name is replytest_".$replymatch1['cid']." and buttons name is showmore_".$replymatch1['cid']."</p><br>
<p id='showme'>Test</p>
</div>
<script>
function myFunction() {
var x = document.getElementById('replytest_".$replymatch1['cid']."');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
";
Я "просто" хочу, чтобы текстовая область появлялась под комментарием, на который я нажал "ответить" - насколько я понимаю, я должен сделать это в цикле php while, так как я получаю комментарии из базы данных
Любая помощьбудет признателен
Спасибо, ребята