У меня есть несколько полей комментариев к содержимому на одной странице, и у меня возникают проблемы с идентификацией их для правильной обработки — например, не имеет значения, где я пытаюсь опубликовать свой комментарий (из какого поля комментариев) — он всегда получает отправлено в поле первого комментария на странице, или я борюсь с вводом, чтобы очиститься после публикации своего комментария, но ввод очищается только в том же поле первого комментария. Вот что у меня есть: (АЯКС)
$(function() {
$(".comm").click(function() {
var parentDiv = $(this).parent('.post_comment').next().children(":first");
var comment = $(this).parent('.post_comment').find('.comment').val();
var name = document.getElementById("username").value;
var idv = $(this).parent('.post_comment').find("#idv").val();
var posthere = $(this).parent().siblings('.wrap_comment').find('#wrap').attr('class');
alert(idv);
if(comment=='')
{
alert("Enter some text..");
$("#content").focus();
}
else
{
$.ajax({
type: "POST",
url: "river_flow.php",
data:
{ username: $("#username").val(),
idv: $(this).parent('.post_comment').find(".idv").val(),
comment: $(this).parent('.post_comment').find('.comment').val()},
cache: false,
success: function(data){
$('#show').after(data);
$(this).find('.comment').css('background-color','red');
$("#content").focus();
}})
return false;
}})})
(HTML)
<div class='com'><button class='click_and_comment'>Give it a comment</button>
<div class='post_comment'>
<img class='end' src="img/end.png" alt='close'/>
<input type="hidden" id="username" value="<?php echo $_SESSION['username'] ?>" name='username'/>
<input type="hidden"class='idv' id="idv" value="<?php echo $row['idv']; ?>" name='idv'/>
<textarea type='text' class="input_comment comment" placeholder='What do you think?' name='comment' id='comment' ></textarea>
<input type='submit' name='comment_submit' class="comment_submit comm" id='comm'/>
</div>
<div class='wrap_comment' id="<?php echo $row['idv']; ?>" >
<div id="show" align="left" class="<?php echo $row['idv']; ?>" ></div>
<?php
$idvc = $row['idv'];
$query = " SELECT * FROM comments WHERE idvc= '$idvc' ORDER BY datec DESC;";
$result = mysqli_query($conn,$query);
while ($bow = mysqli_fetch_assoc($result)) {
echo "<div class='each_comment' id='<?php echo $bow[idvc];?>' >".$bow['commentc']."</div> ";}
?>
</div>
Итак, чтобы сформировать мою проблему в вопросе: как я могу размещать комментарии пользователей соответственно тому, где их «нужно» размещать, и как мне очистить только «текущий» или «этот» ввод - не всегда первым. Опять же - все работает просто идеально, проблема в том, что всегда есть более одного поля для комментариев, и мне нужно различать их и относиться к ним соответственно. Вот мои догадки, которые не работают (против меня бы здесь не было) и, пожалуйста, объясните, почему они не работают, хотя бы просто:
$(this).find('#comment').value = '';
не работает! возможно, он не «видит» этот атрибут. Но почему?! Так. вот мои предположения:
$(this).parent('.post_comment').siblings('.wrap_comment').find('#show').after(data);
(это для комментария, и это мое предположение для очистки ввода :)
$(this).parent('.post_comment').find('#comment').val('');
Я нашел что-то вроде:
$('#комментарий').removeAttr('значение');
это не работает - я не говорю о чистой мертвой путанице, которую я получаю, когда этот материал не работает:
$(this).find('.comment').css('background-color','red');
Уф. Итак, я надеюсь, что кто-то может прояснить все это для меня. Я новичок, если честно. Спасибо!