Добавление сообщений ajax

Miracleon

Почему добавляется только одно сообщение, а при повторном нажатии на кнопку оно просто перезаписывается?

PHP:
  1. <?
  2. if(isset($_POST)){
  3.           $data=date(«d-m-y»);
  4.           $name=mysqli_real_escape_string($con,$poluchatel);
  5.           $poluchatel=mysqli_real_escape_string($con,$poluchatel);
  6.           $textarea=mysqli_real_escape_string($con,$textarea);                
  7.           $query_2=«Insert into mess(author, poluchatel, mess, data)VALUES(‘{$_SESSION[‘id’]}‘, ‘$poluchatel‘, ‘$mess‘, ‘$data‘)»;
  8.           $result_2=mysqli_query($con,$query_2) or die (mysqli_error($con));                      
  9. }
  10. ?>
  11. <div class=»mess»>
  12.             <div>
  13.               <div class=»text»>   <?=$data?></div>
  14.             </div>
  15.             <div class=»flex-shrink»>
  16.               <div class=»font-weight-bold mb-1″ ><?=name ?></div>
  17.              <?=$textarea?>
  18.             </div>
  19.           </div>
 

miketomlin

Потому что автоинкрементального поля нема.
— Добавлено —
Что за хрень у вас с извлечением входных параметров? Совсем не бум-бум что ли?

 

Miracleon

upload_2021-4-6_17-29-9.png

После обновления страницы, сообщения появляются, при отправке ajax появляется только одно и если отправить ещё сообщение то оно просто перезапишется, а не добавится ниже

 

ADSoft

покажите как ajax отправляете и ответ принимаете? наверняка через html() выводите — вот и перезаписывается

 

Miracleon

Вывожу вот так <div id=inform></div>

Код (Javascript):
  1.    $(«#submit»).click(function(event){
  2.        event.preventDefault();
  3.        var author=$(«#author»).val();
  4.        var poluchatel=$(«#poluchatel»).val();
  5.        var textarea=$(«#textarea»).val();
  6.      
  7.        $.ajax({
  8.           type:«post»,
  9.           url:«action_messages.php»,
  10.           data:{
  11.               author:author,
  12.               poluchatel:poluchatel,
  13.               textarea:textarea        
  14.           },
  15.           success:function(data){
  16.              $(«#inform»).html(data);
  17.           }
  18.        });
  19.    });
 

ADSoft

Ну, как и думал
html() заменяет!
Попробуйте append(), after(), before() смотря куда добавлять хотите, в начало или в конец
Либо в ответе в скрипте php формируйте не одну запись, а весь список

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *