@selter_je

Как вывести посты с помощью ajax?

Всем привет!) Как вывести данные из БД?
Есть форма отправки через ajax; теперь не понимаю как их выводить тоже через ajax.
Не могу понять где лажа(
При отправки данных через форму, данные отправляются и тут же появляются в элементе , туда он мне выводит не обновленный пост, а всю страницу целиком! При том, что форма отправляется на странице профиля, а подгружаются обновленные посты вместе с главной (отдельной) страницей )))

Форма отправки данных
<script
  src="https://code.jquery.com/jquery-3.6.0.min.js"
  integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
  crossorigin="anonymous"></script>
  <div class="wrapper">
    <div class="input-box">
      <div class="tweet-area">
        <textarea class="style_textarea" maxlength="200"  type="text" name="textuser" id="textuser" placeholder="Введите сюда ваш текст..."></textarea>
      </div>
    </div>
    <div class="bottom">
      <div class="content">
        <button type="submit" class="btn">Отправить</button>
      </div>
    </div>
  </div>


загрузка формы в БД:

<?php 
session_start();
if (!$_SESSION['user']) {
  header('Location: feed.php');
}
?>


<?php 
require_once 'vendor/connect.php';
$textuser = $_POST['textuser'];
$user_id = $_SESSION['user']['id'];


        mysqli_query($connect, "INSERT INTO `tweet_post` (`id`, `text_decor`, `user_id`) VALUES (NULL, '$textuser', '$user_id')");
        header('Location: ../feed.php');
?>


Метод aiax

<script>
$(document).ready(function(){
  $('button.btn').on('click', function(){
    var placeholder = $('textarea.style_textarea').val();


$.ajax({
  method: "POST",
  url: "create_post.php",
  dataType: 'html',
  data: {textuser: placeholder},
 success: function(data){
      $('#message').html(data);

       } 
})

.done(function(){

});

   $('textarea.style_textarea').val('');
})

});
</script>

<div id="message"></div>


Есть ещё отдельный файл, куда добавляются все данные отправленные через форму:
<?php
session_start();

$user_id = $_SESSION['user']['id'];
require_once 'vendor/connect.php';
$sql = "SELECT * FROM tweet_post WHERE `user_id` = $user_id ORDER BY `tweet_post`.`id` DESC";
if($result = mysqli_query($connect, $sql)){
    while($row = mysqli_fetch_array($result)){
         
        $userid = $row["user_id"];
        $text_decor = $row["text_decor"];
        $id = $row["id"];
    }
}
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну так всё правильно, после записи нового сообщения в БД у вас стоит перенаправление на feed.php, который и выдаёт браузеру страницу с содержимым (которое вам не нравится). Уберите оба "Location:", и добавьте в конце
echo("{$user_id}: {$textuser}<br>");
HTML-тэги добавить по вкусу...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы