JavaScript | JSCROLL / AJAX / ПОМОГИТЕ
<?
include ('base.php');
$start_count_posts = 1;
$loading_count_posts = 10;
$path = "messages2.php";
$text = start;
function is_ajax(){
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) &&
!empty($_SERVER["HTTP_X_REQUESTED_WITH"]) &&
strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest"){
return true;
}
return false;
}
function is_get(){
if($_SERVER["REQUEST_METHOD"] == "GET"){
return true;
}
return false;
}
function template_post($num, $text){
$msg = mysql_query("SELECT * FROM `messages` ORDER BY `id` DESC LIMIT 0, 10");
while($mes = mysql_fetch_assoc($msg)) {
$msgs .= "
<p>
<span>
".$mes['text']."
</span>
</p>
";
return $msgs;
}
return false;
}
## Обработка запросов
if(is_get() && is_ajax()){
## Подгрузка первых записей
if(isset($_GET["type"]) && $_GET["type"] === "start"){
sleep(1);
for($i = 0; $i <= $start_count_posts; $i++){
$posts .= template_post($i, $text);
}
$posts .= "
<div class='next'>
<a href='".$path."?count=".$loading_count_posts."'>показать еще</a>
</div>
";
echo(json_encode($posts));
}
## Подгрузка записей
if(isset($_GET["count"])){
$count = (int) $_GET["count"];
if ($count == 50){
exit;
}
sleep(1);
for($i = $count + 1; $i <= $count + $loading_count_posts; $i++){
$posts .= template_post($i, $text);
}
$count += $loading_count_posts;
$posts .= "
<div class='next'>
<a href='".$path."?count=".$count."'>показать еще</a>
</div>
";
echo($posts);
}
}
exit;
?>
почему-то выводит только одно сообщение много раз, хотя оно в цикле, кто поможет решить проблему?
include ('base.php');
$start_count_posts = 1;
$loading_count_posts = 10;
$path = "messages2.php";
$text = start;
function is_ajax(){
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) &&
!empty($_SERVER["HTTP_X_REQUESTED_WITH"]) &&
strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest"){
return true;
}
return false;
}
function is_get(){
if($_SERVER["REQUEST_METHOD"] == "GET"){
return true;
}
return false;
}
function template_post($num, $text){
$msg = mysql_query("SELECT * FROM `messages` ORDER BY `id` DESC LIMIT 0, 10");
while($mes = mysql_fetch_assoc($msg)) {
$msgs .= "
<p>
<span>
".$mes['text']."
</span>
</p>
";
return $msgs;
}
return false;
}
## Обработка запросов
if(is_get() && is_ajax()){
## Подгрузка первых записей
if(isset($_GET["type"]) && $_GET["type"] === "start"){
sleep(1);
for($i = 0; $i <= $start_count_posts; $i++){
$posts .= template_post($i, $text);
}
$posts .= "
<div class='next'>
<a href='".$path."?count=".$loading_count_posts."'>показать еще</a>
</div>
";
echo(json_encode($posts));
}
## Подгрузка записей
if(isset($_GET["count"])){
$count = (int) $_GET["count"];
if ($count == 50){
exit;
}
sleep(1);
for($i = $count + 1; $i <= $count + $loading_count_posts; $i++){
$posts .= template_post($i, $text);
}
$count += $loading_count_posts;
$posts .= "
<div class='next'>
<a href='".$path."?count=".$count."'>показать еще</a>
</div>
";
echo($posts);
}
}
exit;
?>
почему-то выводит только одно сообщение много раз, хотя оно в цикле, кто поможет решить проблему?
DELETED
16 сентября 2018, в 10:09
Delete
________
посл. ред. 16.09.2018 в 10:09; всего 1 раз(а); by PhpStorm
function template_post($num, $text){
$msg = mysql_query("SELECT * FROM `messages` ORDER BY `id` DESC LIMIT 0, 10");
while($mes = mysql_fetch_assoc($msg)) {
$msgs .= "
<p>
<span>
".$mes['text']."
</span>
</p>
";
return $msgs;
}
return false;
}
return $msgs здесь не имеет смысла, перед использованием оператора конкатенации, переменную необходимо определить.
Правильный итератор:
function template_post($num, $text){
$msgs = "";
$msg = mysql_query("SELECT * FROM `messages` ORDER BY `id` DESC LIMIT 0, 10");
while($mes = mysql_fetch_assoc($msg)) {
$msgs .= "
<p>
<span>
".$mes['text']."
</span>
</p>
";
}
return $msgs;
}