Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: После перезагрузки страницы исчезают комментарии!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите, пожалуйста настроить вывод комментариев на страничке!!
tvasileva
Отправлено: 24 Января, 2016 - 21:34:05
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




Пожалуйста, помогите, не могу решить проблему. Комментарии в бд добавляются, на странице выводятся, но при перезагрузке исчезают + выводит warning: Invalid argument supplied for foreach() in . Я понимаю, куча кода, хоть бегло взгляните, направьте на путь истинный.

Есть ф-ция запрос к бд

public function addComent($check, $data) {

return $this->query_insert_orm('INSERT INTO coments (coments.id_post, coments.user, coments.data_add, coments.texts)
VALUES ("'.$this->slashes($check).'","'.$this->slashes($data['nameUser']).'","'.date("Y.m.d H:i").'",
"'.$this->slashes($data['texts']).'")');
}

Есть вызов ф-ции:

public function addcoments_Action($check) {

$blog_Model = new blog_Model();
$data['coments'] = $blog_Model->addComent($check, $_POST);

echo(json_encode($data['coments']));


}

И обработчик :
<? foreach ($data['coments'] as $key => $value) :?>
<p class="name-user"><?= $value['user'];?></p>
<p class="data-add"><?= $value['data_add'];?></p><br>
<div class="text"><?= $value['texts'];?></div>

<? endforeach ?>

Вывод комментария с помощью аякс:

<script type="text/javascript">

submit.onclick = function() {
queryPost('main/addcoments'+<?= $_GET['check']; ?>, {nameUser: document.getElementById('nameUser').value, texts: document.getElementById('text').value});
}

function queryPost(url, data) {
var date = new Date();

$.ajax({
url: '/' + url,
type: 'POST',
data: data,
dataType: "json",
cache: false,
success: function(html){
coment.innerHTML += '<p class="name-user">' + document.getElementById('nameUser').value + '</p><p class="data-add">' + date.getFullYear() + '.' + (date.getMonth() + 1) + '.' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + '</p><br><div class="text">'+document.getElementById('text').value+'</div>';
}
});
}
</script>
 
 Top
lastdays
Отправлено: 25 Января, 2016 - 08:09:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013  


Помог: 7 раз(а)




Для кого ББ коды придумали? оформи как положено, читать не охото.
 
 Top
tvasileva
Отправлено: 25 Января, 2016 - 20:16:43
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




Комментарии в бд добавляются, на странице выводятся, но при перезагрузке исчезают + выводит warning: Invalid argument supplied for foreach() in . Я понимаю, куча кода, хоть бегло взгляните, направьте на путь истинный.

Есть ф-ция запрос к бд
PHP:
скопировать код в буфер обмена
  1. public function addComent($check, $data) {
  2.  
  3. return $this->query_insert_orm('INSERT INTO coments (coments.id_post, coments.user, coments.data_add, coments.texts)
  4. VALUES ("'.$this->slashes($check).'","'.$this->slashes($data['nameUser']).'","'.date("Y.m.d H:i").'",
  5. "'.$this->slashes($data['texts']).'")');
  6. }
  7.  


Есть вызов ф-ции:
PHP:
скопировать код в буфер обмена
  1.  
  2. public function addcoments_Action($check) {
  3.  
  4. $blog_Model = new blog_Model();
  5. $data['coments'] = $blog_Model->addComent($check, $_POST);
  6.  
  7. echo(json_encode($data['coments']));
  8.  
  9.  
  10. }
  11.  

И обработчик :
PHP:
скопировать код в буфер обмена
  1. <? foreach ($data['coments'] as $key => $value) :?>
  2. <p class="name-user"><?= $value['user'];?></p>
  3. <p class="data-add"><?= $value['data_add'];?></p><br>
  4. <div class="text"><?= $value['texts'];?></div>
  5.  
  6. <? endforeach ?>

Вывод комментария с помощью аякс:
PHP:
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2.  
  3. submit.onclick = function() {
  4. queryPost('main/addcoments'+<?= $_GET['check']; ?>, {nameUser: document.getElementById('nameUser').value, texts: document.getElementById('text').value});
  5. }
  6.  
  7. function queryPost(url, data) {
  8. var date = new Date();
  9.  
  10. $.ajax({
  11. url: '/' + url,
  12. type: 'POST',
  13. data: data,
  14. dataType: "json",
  15. cache: false,
  16. success: function(html){
  17. coment.innerHTML += '<p class="name-user">' + document.getElementById('nameUser').value + '</p><p class="data-add">' + date.getFullYear() + '.' + (date.getMonth() + 1) + '.' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + '</p><br><div class="text">'+document.getElementById('text').value+'</div>';
  18. }
  19. });
  20. }
  21. </script>


Спасибо за внимание.
 
 Top
lastdays
Отправлено: 26 Января, 2016 - 10:43:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013  


Помог: 7 раз(а)





Не массив, а хрень после обновления страницы

От того и ошибка
PHP:
скопировать код в буфер обмена
  1. Invalid argument supplied for foreach() in


Вообще довольно забавно реализовано.

Добавить коммент, вернуть последние данные - норм, а где селект на другие коменты вне аякс запроса?
 
 Top
andrewkard
Отправлено: 26 Января, 2016 - 10:44:54
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




tvasileva
А запрос на выборку комментариев из БД где? Как формируется
tvasileva пишет:
$data['coments']
 
 Top
tvasileva
Отправлено: 26 Января, 2016 - 18:23:42
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




lastdays пишет:

селект на другие коменты вне аякс запроса?


PHP:
скопировать код в буфер обмена
  1. public function getComment($check) {
  2.        
  3.         return $this->query_select_orm('SELECT * FROM coments WHERE id_post='.$this->slashes($check));
  4.     }


я не пойму, что с массивом не так? чего ему не хватает?
 
 Top
lastdays
Отправлено: 26 Января, 2016 - 20:25:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013  


Помог: 7 раз(а)






Посмотри что вернет, в случае добавления комментария и после обновления страницы, будет понятно, чего и где не хватает.
 
 Top
tvasileva
Отправлено: 26 Января, 2016 - 21:38:08
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




lastdays пишет:

Посмотри что вернет, в случае добавления комментария и после обновления страницы, будет понятно, чего и где не хватает.



вернуло NULL и при добавлении и после обнуления.
 
 Top
andrewkard
Отправлено: 27 Января, 2016 - 10:40:33
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Выведите:
tvasileva пишет:
'SELECT * FROM coments WHERE id_post='.$this->slashes($check)

и посмотрите что там, плюс попробуйте его выполнить с помощью phpMyAdmin
 
 Top
tvasileva
Отправлено: 27 Января, 2016 - 21:40:15
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




с помощью phpMyAdmin запрос выполняется, но почему массив не выгребает данные, а возвращает нулл, я не понимаю, просто по такой же системе у меня добавляются посты.
 
 Top
tvasileva
Отправлено: 28 Января, 2016 - 22:24:01
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2015  


Помог: 0 раз(а)




после долгих мучительных ночей я пришла к выводу, что во первых не совпадали имена бд, форм,запроса + не указана кодировка, из-за чего была данная ошибка. Со скрипом, но работает Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB