我在首页的 php 中有 foreach 循环用于获取图像和图像的描述,在 foreach 循环内我有表单,表单用于发送评论,这是首页..
<?php foreach ($photo as $p) : ?>
<div class="photo-box">
<div class="galP photo-wrapper" >
<div data-fungal="<?php echo $p->id; ?>" class='galFun-get_photo'>
<img src="<?php echo $p->thumb; ?>" class='image'>
</div>
</div>
<div class='inline-desc'>
<a href="/gallery/user.php?id=<?php echo $p->userId; ?>">
<?php echo $p->username; ?>
</a>
</div>
<form method="POST" action="" class="form-inline comment-form galForm">
<div class="form-inline">
<input type="hidden" class='photoId form-control' name="photoId" value="<?php echo $p->id; ?>" >
<input type="hidden" class='userId form-control' name="userId" value="<?php echo $session->userId; ?>" >
<textarea cols="30" rows="3" class='comment fun-gal-textarea' name="comment" placeholder="Leave your comment"></textarea>
<button type='button' name='send' class='sendComment'>SEND</button>
</div>
</form>
<div class='new-comm'></div>
<div class='comments-gal' id='comments'>
<div data-id='<?php echo $p->id; ?>' class='getComment'>
<span>View comments</span>
</div>
</div>
</div>
使用 ajax 我想在单击具有类 sendComment 的按钮后发送 userId、photoId 和评论。当我发送对第一张图片的评论时,一切正常,但是当我尝试发送对其他图片的评论时,它不起作用。我无法选择特定的输入和文本区域来获得正确的值。这是我的 jquery
$('body').on('click','.sendComment',function(){
var selector = $(this);
var userId = selector.siblings($('.userId'));
var photoId = selector.siblings($('.photoId'));
var c = selector.siblings($('.comment'));
var comment = $.trim(c.val());
if (comment == "" || comment.length === 0) {
return false;
};
$('#no-comments').remove();
$.ajax({
url: '/testComment.php',
type: 'POST',
data: {comment:comment,userId:userId,photoId:photoId}
}).done(function(result) {
...
}
})
});
此外,我已经尝试过各种可能的方法来从表单中获取正确的值,但都没有成功。
最佳答案
这一行
var userId = selector.siblings($('.userId'));
不太可能获得正确的输入,因为根据 https://api.jquery.com/siblings/
.siblings( [selector ] )
selector
A string containing a selector expression to match elements against.
所以这需要是:
var userId = selector.siblings('.userId');
此时您还需要从输入中获取实际值,给出:
var userId = selector.siblings('.userId').val();
var photoId = selector.siblings('.photoId').val();
var c = selector.siblings('.comment');
其余代码保持原样。
关于javascript - 在 php foreach 循环中选择特定元素 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49031580/