Loading...
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;
?>

почему-то выводит только одно сообщение много раз, хотя оно в цикле, кто поможет решить проблему?
Для садомазохистов
________
посл. ред. 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;
}
Онлайн: 2
Время:
Gen. 0.0603
(c) ByMAS.RU 2010-2025