Попытка скрыть определенный div в jquery в php while loop

У меня есть эта форма выводится из цикла PHP в то время:

echo '<div id="postCont" class="postCont'.$pid.'" style="block;">
<div id="clLink">
<a id="clLink" href="'.$plink.'" target="_blank"" title="'.$ptitle.'">'.$ptitle.'</a>
</div>
<div id="clDate">Posted on '.$pdate.'</div>
<div id="clDesc">'.$pdesc.'</div>

<form method="post" class="ibadForm">
<input type="hidden" name="id" value="'.$pid.'">
<input type="hidden" name="hiddenBad" value="yes">
<input type="image" src="../img/bad.png" name="subBad" value="Bad" class="bad">
</form>
</div>';

Я пытаюсь удалить человека .postCont когда ibadForm нажимается с помощью jquery.

$(".ibadForm").submit(function(e) {
var url = "add_form.php";
var id = <?php echo $pid?>;
$.ajax({
type: "POST",
url: url,
data: $(this).serialize(),
success: function(data)
{
$('.postCont' + id).hide();
}
});
e.preventDefault();
});

Он отправляет форму add_form.php хорошо, но не скрывает postCont, Если я удаляю идентификатор из класса, он скрывает все сообщения Cont. Может кто-нибудь сказать мне, где я иду не так?

0

Решение

Вы могли бы использовать closest() чтобы получить родителя div затем скрыть это с помощью hide() метод как:

$(".ibadForm").submit(function(e) {
var url = "add_form.php";
var id = <?php echo $pid?>;
var _this = $(this);

$.ajax({
type: "POST",
url: url,
data: $(this).serialize(),
success: function(data)
{
_this.closest('.postCont').hide();
}
});
e.preventDefault();
});

НОТА : Вы должны хранить $(this) объект, который ссылается на нажал form в некоторой переменной (_this в моем примере), затем используйте его в обратном вызове успеха, так как $(this) внутренний обратный вызов больше не ссылается на форму, например:

_this.closest('.postCont').hide();

Надеюсь это поможет.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]