Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 7

Динамическая подгрузка контента работает некорректно

20.02.2018, 19:27. Показов 2350. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Подскажите пожалуйста.
Есть страница catalog.php на которой выводятся товары
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?php 
    include ('templates/connect.php');
    include ('function/function.php');
    session_start();
    include ('templates/auth_cookie.php');
    $cat = clear_string($_GET["cat"]);
 ?>
 
 
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title></title>
  <script src="js/jquery-3.2.1.min.js"></script>
  <script>
        $(document).ready(function(){
             $("#imgLoad").hide();
             $("#pust").hide();
         var page = 1;
 
         $('#content-load-cat').click(function(){
            
          page++;
 
         $.ajax({
          type: "POST",
          url: "gallery/main-load.php",
          data: "page="+page,
          dataType: "html",
          cache: false,
          beforeSend: function(){
            $('#content-load-cat').hide();
            $("#imgLoad").show();
          },
          success: function(data) {  
          
          if (data == "0")
          {
            $("#imgLoad").hide();
            $('#pust').show();
 
          }else
          {
            $("#imgLoad").hide();
            $(data).appendTo("#block-content-cat");
            $('#content-load-cat').show();
          }}
        });
        });
      
}); 
    </script>
</head>
<body class="content-mar">
 
 
<ul class="submenu">
            <li><a href="catalog.php">Все</a></li>
            <li><a href="catalog.php?cat=watch">Наручные часы</a></li>
            <li><a href="catalog.php?cat=man">Мужское</a></li>
            <li><a href="catalog.php?cat=woman">Женское</a></li>
            <li><a href="catalog.php?cat=kids">Детское</a></li>
            <li><a href="catalog.php?cat=gadgets">Гаджеты</a></li>
            <li><a href="catalog.php?cat=other">Разное</a></li>
</ul>
 
 
<div class="item-figura">
    <div class="container important-padding">
        <div id="block-content-cat">
<?php 
if (!empty($cat))
 {
    $querycat = "AND brand='$cat'";
    
 }else
 {
    $querycat = "";
 }
 
 
    $result = mysql_query("SELECT * FROM product WHERE visible='1' $querycat ORDER BY product_id DESC LIMIT 4",$link);
 
if (mysql_num_rows($result) > 0){  
$row = mysql_fetch_array($result);
do
{
        
echo '
 
                            <div class="cart">
                                <div class="figura">
                                    <div class="wrap-figura">
                                        <div class="wrap-screenshot">
                                            <div class="screenshot" style="background-image: url(images/item/'.$row["img"].')"></div>
                                            <div class="info-screen">
                                                <div class="hover">
                                                    <div class="hover-group">
                                                        <a href="'.$row["demo"].'" target="_blank" class="prew-ic"></a>
                                                        <a class="add-to-cart" tid="'.$row["product_id"].'"></a>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="comm">
                                            <div class="comm-left">
                                                <a href="'.$row["demo"].'" target="_blank" class="demo">
                                                    <h3 class="name">'.$row["title"].'</h3>
                                                </a>
                                                <div class="vers">'.$row["version"].'</div>
                                            </div>
                                            <div class="price">'.$row["price"].'₽</div>
                                                
                                        </div>
                                </div>
                            </div>
 
';
 
} while ($row = mysql_fetch_array($result));
 
}else
{
    echo '0';
} 
 
 
 ?>
</div>
 
<div style="clear: both;" ></div>
        <div class="load-content">
            <div id="content-load-cat" >Загрузить еще</div>
            <p align="center">
                <span id="pust">Больше нет</span>
                <img src="../images/loader.gif" alt="" id="imgLoad">
            </p>
        </div>
    </div>
</div>
 
 
<script src="js/main.js"></script>
</body>
</html>
Подгрузка происходит из main-load.php ajax'ом

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
    
include('../templates/connect.php');
include ('../function/function.php');
 
if (!empty($cat))
 {
    $querycat = "AND brand='$cat'";
    
 }else
 {
    $querycat = "";
 }
  
$num = 4;
$page = (int)$_POST['page'];
$count = mysql_query("SELECT COUNT(*) FROM product WHERE visible='1' $querycat",$link);
$temp = mysql_fetch_array($count);
$posts = $temp[0];
$total = (($posts - 1) / $num) + 1;
$total =  intval($total);
$page = intval($page);
$start = $page * $num - $num;
 
 
$result = mysql_query("SELECT * FROM product WHERE visible='1' $querycat ORDER BY product_id DESC LIMIT $start, $num",$link);
if (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_array($result);
do
{
        
echo '
 
                            <div class="cart">
                                <div class="figura">
                                    <div class="wrap-figura">
                                        <div class="wrap-screenshot">
                                            <div class="screenshot" style="background-image: url(images/item/'.$row["img"].')"></div>
                                            <div class="info-screen">
                                                <div class="hover">
                                                    <div class="hover-group">
                                                        <a href="'.$row["demo"].'" target="_blank" class="prew-ic"></a>
                                                        <a class="add-to-cart" tid="'.$row["product_id"].'"></a>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="comm">
                                            <div class="comm-left">
                                                <a href="'.$row["demo"].'" target="_blank" class="demo">
                                                    <h3 class="name">'.$row["title"].'</h3>
                                                </a>
                                                <div class="vers">'.$row["version"].'</div>
                                            </div>
                                            <div class="price">'.$row["price"].'₽</div>
                                                
                                        </div>
                                </div>
                            </div>
 
';
 
} while ($row = mysql_fetch_array($result));
 
}else
{
    echo '0';
}   
 
 
}
?>
Проблема в следующем:
Товары подгружаемые из main-load.php не реагируют на
PHP
1
$cat = clear_string($_GET["cat"]);
тем самым в разных категориях выводятся все товары из базы данных, а не те которые относятся к данной категории.
И еще товары подгружаемые из main-load.php не добавляются в корзину при нажатии на кнопку с
PHP
1
tid="'.$row["product_id"].'"
Код скрипта добавления товара в корзину
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$('.add-to-cart').click(function(){
 
  var  tid = $(this).attr("tid");
 
  $.ajax({
    type: "POST",
    url: "../templates/addtocart.php",
    data: "id="+tid,
    dataType: "html",
    cache: false,
    success: function(data) { 
      loadcart();
    }
  });
});
Т.е. товары погружаемые ajax'ом выводятся как пустышки. Ни на что не реагируют.
Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2018, 19:27
Ответы с готовыми решениями:

Подгрузка контента
здравствуйте, хотелось прояснить пару моментов в данной теме вот у меня есть код для подгрузки контента: &lt;?php ...

PHP подгрузка контента
Возможно ли реализовать, подгрузку дополнительного контента из базы данных MySQL?

Подгрузка контента в div
Привет. В общем есть функция которая забирает контент с сайта (парсер). Построена на использовании curl. Функция возвращает контент и...

12
 Аватар для Mashka_mulashka
25 / 25 / 11
Регистрация: 13.12.2011
Сообщений: 818
20.02.2018, 21:30
а вы пробовали уже делать дампы подозрительных элементов?
0
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 7
20.02.2018, 21:53  [ТС]
Извините я новичок. Не совсем понимаю о чем речь

Добавлено через 17 минут
Попробовал в файле main-load.php после
PHP
1
$row = mysql_fetch_array($result);
поставить
PHP
1
var_dump ($row);
товары не подгружаются и в консоле ошибка

Uncaught Error: Syntax error, unrecognized expression: array(36) {
[0]=>
string(1) "7"
["product_id"]=>
string(1) "7"
[1]=>
string(1) "1"
...

Что это может значить?
0
 Аватар для Fantom2209
30 / 30 / 20
Регистрация: 28.02.2014
Сообщений: 195
20.02.2018, 23:07
SnipJest, первое что меня смущает, $cat где получает значение? Правильно, в первом файле. А во втором файле $cat = null -> empty(null) == true -> $querycat = "" .

Цитата Сообщение от SnipJest Посмотреть сообщение
if (!empty($cat))
это я к этому описал вверху.
Цитата Сообщение от SnipJest Посмотреть сообщение
выводятся все товары
Совет на будущее, если ты видишь что данные тебе вернулись не те, начни с вывода $sql и убедись что запрос такой как ты думаешь. (в твое случае это не так)

PHP
1
2
3
$sql = "SELECT * FROM product WHERE visible='1' $querycat ORDER BY product_id DESC LIMIT $start, $num";
echo $sql;
$result = mysql_query($sql,$link);
Да и в этом случае лучше использовать while вместо do.

Добавлено через 8 минут
SnipJest, а по поводу корзины, тема не раскрыта, лучше опиши проблему.
0
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 7
20.02.2018, 23:22  [ТС]
я добавлял $cat и во второй файл
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$cat = clear_string($_GET["cat"]);
if (!empty($cat))
 {
    $querycat = "AND brand='$cat'"; 
 }else
 {
    $querycat = "";
 }
  
$num = 4;
$page = (int)$_POST['page']; 
$count = mysql_query("SELECT COUNT(*) FROM product WHERE visible='1' $querycat",$link);
$temp = mysql_fetch_array($count);
$posts = $temp[0];
$total = (($posts - 1) / $num) + 1;
$total =  intval($total);
$page = intval($page);
$start = $page * $num - $num;  
 
$result = mysql_query("SELECT * FROM product WHERE visible='1' $querycat ORDER BY product_id DESC LIMIT $start, $num",$link);
 
if (mysql_num_rows($result) > 0){ 
$row = mysql_fetch_array($result);
все равно не выводятся нужные товары по категориям

Добавлено через 1 минуту
Цитата Сообщение от Fantom2209 Посмотреть сообщение
PHPВыделить код
1
2
3
$sql = "SELECT * FROM product WHERE visible='1' $querycat ORDER BY product_id DESC LIMIT $start, $num";
echo $sql;
$result = mysql_query($sql,$link);
по поводу этого не понял. Тоже самое что и у меня только записано немного по другому

Добавлено через 2 минуты
Цитата Сообщение от Fantom2209 Посмотреть сообщение
а по поводу корзины, тема не раскрыта, лучше опиши проблему.
Есть скрипт. При нажатии на кнопку товар добавляется в корзину. Товары которые подгружаются ajax'ом не добавляются в корзину.
0
 Аватар для Fantom2209
30 / 30 / 20
Регистрация: 28.02.2014
Сообщений: 195
20.02.2018, 23:26
SnipJest, попробуй написать вначале

PHP
1
2
var_dump($_GET);
var_dump($_POST);
Добавлено через 2 минуты
SnipJest, принцип похожий, если с бд чет не пашет, выводи сразу $sql. Если работаешь с ajax и что то не пришло, сразу смотри что за данные тебе пришли. (возможно ты чет не передал, или вдруг не тот метод используешь (Get|Post))
0
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 7
20.02.2018, 23:27  [ТС]
добавил в консоле ошибка

Uncaught Error: Syntax error, unrecognized expression: array(0) {
}
array(1) {
["page"]=>
string(1) "2"
}
...
0
 Аватар для Fantom2209
30 / 30 / 20
Регистрация: 28.02.2014
Сообщений: 195
20.02.2018, 23:31
Цитата Сообщение от SnipJest Посмотреть сообщение
по поводу этого не понял. Тоже самое что и у меня только записано немного по другому
я тебе показал как посмотреть sql запрос (echo $sql). Или ты совсем не понимаешь в sql?
0
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 7
20.02.2018, 23:33  [ТС]
Цитата Сообщение от Fantom2209 Посмотреть сообщение
или вдруг не тот метод используешь (Get|Post)
мне нужно чтобы товары подгружались при нажатии на кнопку "показать еще".
Те первые товары что сразу выводятся, с ними все хорошо, и по категориям сортируются и в корзину добавляются. А те что ajax загружаются не работают. В любой категории выводятся все и в корзину не добавляются.

Добавлено через 1 минуту
Цитата Сообщение от Fantom2209 Посмотреть сообщение
Или ты совсем не понимаешь в sql?
я мало что в этом понимаю) Сайт собираю по готовым кускам)
0
 Аватар для Fantom2209
30 / 30 / 20
Регистрация: 28.02.2014
Сообщений: 195
20.02.2018, 23:35
SnipJest, не смотри в консоль пока, она для js. смотри вкладку Network, там смотри какие запросы отсылает твой браузер и что получает в ответ.
0
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 7
20.02.2018, 23:35  [ТС]
Цитата Сообщение от SnipJest Посмотреть сообщение
или вдруг не тот метод используешь (Get|Post)
если делать GET запросом например постраничную навигацию, то все работает. Но мне нужно без перезагрузки сраницы загружать товары по нажатию кнопки POST запросом
0
 Аватар для Fantom2209
30 / 30 / 20
Регистрация: 28.02.2014
Сообщений: 195
20.02.2018, 23:41
SnipJest, я хотел что бы ты сам нашел ошибку, ну ладно, если ты пришел по POST то на странице массив GET пуст. Значет тебе нужно $_POST['cat']. Если у тебя в массиве пост нет такого элемента, значит ты его в js не передаешь.
0
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 7
20.02.2018, 23:44  [ТС]
Цитата Сообщение от Fantom2209 Посмотреть сообщение
не смотри в консоль пока, она для js. смотри вкладку Network, там смотри какие запросы отсылает твой браузер и что получает в ответ.
при нажатии на кнопку "загрузить еще" обращается к файлу main-load.php, а что в нем дальше происходит я не понимаю(

Добавлено через 2 минуты
Цитата Сообщение от Fantom2209 Посмотреть сообщение
Значет тебе нужно $_POST['cat']
а куда это добавить нужно, в какой файл?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.02.2018, 23:44
Помогаю со студенческими работами здесь

Подгрузка контента из других страниц
Здравствуйте. Подскажите как можно сделать следующее. Есть сайт kskrodina.ru. Разметка сделана таким образом, что весь контент находится...

Php+ajax подгрузка контента
Ох, пришло это время когда мне нужен аякс. Изучать его не изучал глубоко, чисто так поверхностно. Нужно подгружать в определенный Div...

Подгрузка контента при нажатии на кнопку
Надо сделать, чтобы после нажатия на кнопку подгружались статьи из базы данных. То есть на странице отображается например 10 статей, а...

Подгрузка контента при прокрутке страницы
Помогите реализовать такого вида страницу: http://*******/BgBRND http://*******/InqFpl есть: папка: images (тут картинки) файл:...

Динамическая подгрузка контента
Есть фреймовая страница, например такая: &lt;frameset rows='*, 100'&gt; &lt;frameset cols='200,*'&gt; &lt;frame name='Menu'...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru