Ajax запрос в php и возвратом данных обратно

Заново переписал вопрос:

Генерируется страничка чата на php, в ней выведенно определённое количество сообщений, необходимо запомнить сколько сообщений было в БД на момент её генерации на сервере, у этой страницы есть файл js, необходимо каждую секунду, выполнять ajax запрос на сервер и проверять нынешнее количество сообщений в БД, соответственно, если оно будет отличатся, от того количества, которое было при генерации страницы, то мы обновляем страницу. Чтобы вывести новые сообщения.

Я прошу, помочь написать ajax запрос правильный на js(Jquery). А также как при генерации страницы передать значение переменной php, переменной в js.

Файл main.js:

        var fn=function(){ 
            // Неправильный ajax запрос
            let id_product = 321;
            let qty_product = 2;

            $.ajax({ 
                url: "check.php", 
                // dataType: "json", // Для использования JSON формата получаемых данных
                method: "GET", // Что бы воспользоваться POST методом, меняем данную строку на POST   
                data: {"id_product": id_product,"qty_product": qty_product},
                
                    success: function(data) {
                    console.log(data); // Возвращаемые данные выводим в консоль
                } 
            });
            
            if (nowmess > prevmess){
                window.location.reload(); // Обновляем страницу
            }

            setTimeout(arguments.callee,1000);
        }
          
        setTimeout( fn,1000 );

Готовый код check.php:

<?php 
require 'db.php';  // Подключаем файл управление базой данных

$colh = R::count('messages'); // Достаем количество сообщений в 

echo $colh;  // Отправляем обратно

?>


Ответы (2 шт):

Автор решения: lith.al

"У меня есть файл php, и в нём лежит скрипт js" -- не надо так. php-скрипты в php-файлы, js-скрипты в js-файлы.

Вместо return надо echo т.к. data в аргументе аякса -- это строка, которую выведет php скрипт. У тебя ничего сейчас не выводится -- ответ всегда будет пустой.

→ Ссылка
Автор решения: Денис

Ну вот, разобрался. Готовый код js, привязанного к странице файла:

var fn=function(){ 
            var nowmess;

            $.ajax({ 
                url: "check.php", 
                // dataType: "json", // Для использования JSON формата получаемых данных
                method: "GET", // Что бы воспользоваться POST методом, меняем данную строку на POST   
                data: {"nowmess": nowmess},
                
                success: function(data) {
                    nowmess = data;
                    if (nowmess > prevmess){
                        window.location.reload(); // Обновляем страницу
                    }
                } 
            });
            setTimeout(arguments.callee, 1000);
        }
          
        setTimeout(fn, 1000);

И на самой странице сохранил переменную из php в js:

<script>
  var prevmess = <?php echo json_encode($colm); ?>; 
</script>

→ Ссылка