Задаю этот вопрос уже который раз. Видимо я не понимаю того что делаю.
Есть на странице список продуктов и нужно сделать комментирование этих продуктов прямо в списке. Аналогия с комментированием постов во Вконтакте. Вроде все реализовал, а что-то не работает корректно. Когда комментирую всегда срабатывает поле комментирования только первого продукта из списка.
Вот исходники
Контроллер:
function addcomraitAction() {
if (! empty($_POST['content'])) {
$content = isset($_POST['content']) ? $_POST['content'] : null;
$content = htmlspecialchars($content);
$user_id = isset($_POST['user_id']) ? $_POST['user_id'] : null;
$user_id = intval($user_id);
$product_id = isset($_POST['product_id']) ? $_POST['product_id'] : null;
$product_id = intval($product_id);
} else {
return false;
}
// Запись данных в БД
$result = insertComment($content, $user_id, $product_id);
if ($result) {
$resData['success'] = 1;
$resData['message'] = 'Комментарий добавлен';
}else{
$resData['success'] = 0;
$resData['message'] = 'Ошибка добавления комментария';
}
echo json_encode($resData);
return;
}
вью Smarty:
{foreach $products as $item name=product}
<h2><a href="/product/page/{$item['id']}/">{$item['product']}</a></h2>
<div id="blockNewComment">
<form name="comment" action="" method="post">
<p>
<label>Комментарий:</label>
<br />
<textarea id="newContentComm" required name="content" cols="30" rows="3"></textarea>
</p>
<p>
<input id="newProductId" type="hidden" name="product_id" value="{$item['id']}" />
<input id="newUserId" type="hidden" name="user_id" value="{$authUser['id']}" />
<input type="submit" onclick="newComment();" value="Отправить" />
</p>
</form>
</div>
{/foreach}
ajax:
function newComment() {
var content = $('#newContentComm').val();
var product_id = $('#newProductId').val();
var user_id = $('#newUserId').val();
var postData = {content: content, product_id: product_id, user_id: user_id};
$.ajax({
type: 'POST',
async: false,
url: "/product/addcomrait/",
data: postData,
dataType: 'json',
success: function(data) {
alert(data['message']);
if(data['success']) {
$('#newContentComm').val('');
$('#newProductId').val('');
$('#newUserId').val('');
}
}
});
}