ฉันมีกล่องความคิดเห็นหลายกล่องของเนื้อหาในหน้าเดียวกัน และฉันมีปัญหาในการระบุกล่องความคิดเห็นเหล่านั้นเพื่อปฏิบัติต่อกล่องเหล่านั้นอย่างถูกต้อง - ตัวอย่างเช่น ไม่สำคัญว่าฉันจะลองโพสต์ความคิดเห็นของฉันที่ใด (จากช่องแสดงความคิดเห็นใด) - มันจะได้รับเสมอ โพสต์ไปที่ช่องแสดงความคิดเห็นแรกบนเพจ หรือฉันกำลังต่อสู้กับอินพุตเพื่อล้างข้อมูลหลังจากที่ฉันโพสต์ความคิดเห็น แต่อินพุตจะล้างเฉพาะในช่องแสดงความคิดเห็นแรกเดียวกันเท่านั้น นี่คือสิ่งที่ฉันมี: (AJAX)
$(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('');
ฉันพบบางสิ่งเช่น:
$('#comment').removeAttr('value');
ใช้งานไม่ได้ - ฉันไม่ได้พูดถึงความสับสนที่ฉันได้รับเมื่อสิ่งนี้ใช้งานไม่ได้:
$(this).find('.comment').css('background-color','red');
โห่. ดังนั้นฉันหวังว่าจะมีคนช่วยอธิบายทั้งหมดนี้ให้ฉันสักหน่อย ฉันเป็นมือใหม่ที่มีความซื่อสัตย์ ขอบคุณ!