Подскажите, пожалуйста, я вывожу статьи и комментарии к ним в цикле PHP foreach.
...
foreach ($result as $articles){?>
<p><?echo $articles['title'];?></p>
<p><?echo $articles['content'];?></p>
foreach ($comm as $comment){?>
<div class = "comment_show">
<p><? echo $comment['user'];?></p>
<p><? echo $comment['comm_text'];?></p>
</div>
<form class = "comment_form" action = "send.php" action ="POST">
<input type ="hidden" name ="article_id" value ="<? echo $articles['id']" class = "content_id"
<input type ="text" name ="username" class = "userlogin">
<textarea name ="comment" class = "comm_cont">
<input type ="button" name ="submit" class = "submit">
</form>
<?php
}
}
?>
Код script.js
$(document).ready(function(){
$('.submit').on('click', function(e) {
e.preventDefault();
var content_id = $('.content_id').val();
var username = $('.userlogin').val();
var message = $('.comm_cont').val();
var url = $('.comment-form').attr('action');
//e.preventDefault();
$.ajax({
url: url,
type: "POST",
data: {
"post_id": content_id,
"login": username,
"comment": message,
"submit": $(".submit").val()
},
cache: false,
dataType: 'json',
success: function(response){
$('.comment_text').val('');
$('.comment_show').append(response.username + response.login + response.comment + response.pubdate);
}
});
});
});
Проблема в следующем: Форма срабатывает только в 1-й выведенной статье. В остальных - не срабатывает.
Проблема вашего js-кода в следующем:
$('.content_id').val() // и схожие селекторы
не знают, какой именно элемент с классом .content_id
вы хотите использовать.
Но для упрощения вашего кода уже придумана функция serialize()
, в итоге ваш код примет следующий вид:
// повесьте обработчик на событие "submit"
// это позволит вам обрабатывать даже те события
// сабмита, которые инициированы нажатием кнопки Enter
$('.comment_form').on('submit', function(e) {
// $(this) - это форма которая сабмитится
var url = $(this).attr('action');
e.preventDefault();
$.ajax({
url: url,
type: "POST",
// $(this) - это форма которая сабмитится
data: $(this).serialize(),
cache: false,
dataType: 'json',
success: function(response){
$('.comment_text').val('');
$('.comment_show').append(response.username + response.login + response.comment + response.pubdate);
}
});
});
Каждая форма будет выглядеть так:
<!-- Обратите внимание что POST это method-аттрибут -->
<form class = "comment_form" action = "send.php" method ="POST">
<input type ="hidden" name ="article_id" value ="<? echo $articles['id']?>" class = "content_id">
<input type ="text" name ="username" class = "userlogin">
<textarea name ="comment" class = "comm_cont">
<input type ="button" name ="submit" class = "submit">
</form>
На сервере вы должны будете проверить массив $_POST
на то что он не пустой, или в нем есть, например, поле username
, так как кнопка сабмита не передается на сервер. Проверить, какие ключи/значения приходят на сервер в массиве $_POST
вы можете через print_r($_POST)
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
На форуме много тем с этим вопросом но я для себя не решил проблемуНа плагине Carbon Fields 3
Возможно-ли в yii2 при использовании аутентификатора, открыть доступ к какому-либо методу(-ам)(в моем случае actionParents) для неаутентифицированного...
Начал недавно изучать ООП и решил переписать с нуля свой скрипт написанный с помощью процедурного стиля в ООП стильНо мой код почему-то работает...
]Код работает до момента когда я делаю запрос delete from он его просто как будто не читаетНе понимаю в чем дело