@Iossarian

В чем ошибка Ajax добавление записи?

C подобным кодом в другом проекте все хорошо отрабатывало, здесь же не работает. $post['id'] передается из форич. В чем моя ошибка? Надо ли в ajax- запрос передавать значение author_id из php или он сам его подхватит? В любом случае, пробовал передавать также через скрытое поле.

<div class="comment">
                    <textarea class="text" placeholder="Ваш комментарий..." name="comment" cols="100" rows="3"></textarea>
                    <input type="hidden" class="id" value="<?=$post['id'];?>" name="id">
                </div>
                <div class="comm"> 
                    <button class="submit" id="add" name="comm">Комментировать</button>
                </div>


$(document).ready(function () {
        $('button.submit').on('click', function () {
            var text = $('textarea.text').val();
            var id = $('input.id').val();
            $.ajax({
                method: "POST",
                url: "../newcom.php",
                data: {text: text, post_id: id}
            })
                .done(function () {
                    console.log(text);
                })
        })
    });


$values = [
    'author_id' => $_SESSION['user']['id'],
    'text' => $_POST['comment'],
    'post_id' => $_POST['id']
];
$sql = 'INSERT INTO comments (author_id, date, text, post_id) VALUES (:author_id, NOW(), :text, :post_id)';
$result = $db->prepare($sql, $values);
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
var text = $('textarea.text').val();

В селекте вы можете обращаться как угодно, хоть по имени хоть по классу, хоть по id.
Метод val() будет брать value="" выбранного элемента

data: {text: text, post_id: id}
Дальше в ajax вы указываете имена отправляемых переменных. В вашем случае это text и post_id

По этим же именам будут создаваться элементы в полученном POST. Т.е. $_POST['text'] и $_POST['post_id']
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы