mutaev_murad
@mutaev_murad

Обработка ajax запроса?

Есть у меня некая MVC и в ней есть файл
Product.php

<?php 

	/**
	 * 
	 */
	class Product
	{
		const SHOW_BY_DEFAULT = 10;

		/**
		 *
		 */

		public static function getLatestProducts($count = self::SHOW_BY_DEFAULT)
		{
			$count = intval($count);

			$db = Db::getConnection();

			$productsList = array();

			$result = $db->query('SELECT id, name, price, image, is_new, data_id, description FROM product '
					. 'WHERE status = "1"'
					. 'ORDER BY id DESC '
					. 'LIMIT ' . $count);

			$i = 0;

			while ($row = $result->fetch()) {
				var_dump($productsList[$i]['id'] = $row['id']);
				var_dump($productsList[$i]['name'] = $row['name']);
				var_dump($productsList[$i]['image'] = $row['image']);
				var_dump($productsList[$i]['price'] = $row['price']);
				var_dump($productsList[$i]['is_new'] = $row['is_new']);
				var_dump($productsList[$i]['data_id'] = $row['data_id']);
				
				
				$productsList[$i]['description'] = $row['description'];

				$i++;
			}

			return $productsList;

		}
	/**
	 * 
	 */

	public static function getProductsListByCategory($categoryId = false, $page = 1)
    {
        if ($categoryId) {
            
            $page = intval($page);            
            $offset = ($page - 1) * self::SHOW_BY_DEFAULT;
        
            $db = Db::getConnection();            
            $products = array();
            $result = $db->query("SELECT id, name, price, image, is_new, description  FROM product "
                    . "WHERE status = '1' AND category_id = '$categoryId' "
                    . "ORDER BY id ASC "                
                    . "LIMIT ".self::SHOW_BY_DEFAULT
                    . ' OFFSET '. $offset);

            $i = 0;
            while ($row = $result->fetch()) {
                $products[$i]['id'] = $row['id'];
                $products[$i]['name'] = $row['name'];
                $products[$i]['image'] = $row['image'];
                $products[$i]['price'] = $row['price'];
                $products[$i]['is_new'] = $row['is_new'];
                $products[$i]['description'] = $row['description'];
                $i++;
            }

            return $products;       
        }
    }



	}

	
 ?>


с запросом товара на сервер, товар выводится все нормально, задача, нужно при клике на чексбокс ajax-ом получить/фильтровать товар, который выводи этот файл Product.php не понимаю как в обработчике ajax запроса, взять эти данные надо ли обращаться к этому файлу Product.php

ajax- запрос
$(document).ready(function() {
           $('.brand').on('click', function(){  //изменяем отметку чекбокса
                 if($(this).prop('checked')){  //если от отмечен
                       // заносим в переменную name из чекбокса
                          var nameT=$(this).attr('name');
                          
                     // и отправляем  ajax - краткий POST запрос
                      $.ajax({
                       url:"models/fetch_data.php",
                       method:"POST",
                       dataType: 'json',
                        data:{nP:nameT}, // будем отправлять nP в котором данные из чекбокса
                        success:function(data){
                            $('.product-list').html(data);
                        }
                  });

 }
});
  });


файл fetch_data.php
$nP =  $_POST['nP'];
if ($nP == "Классические роллы") {
echo " Куртка, пинджак с отливом, брюки в полоску <br/>"; 
}
else if ($nP == "Суши"){
    echo "Штиблеты, туфли, тапки <br/>";
}
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
нужно при клике на чексбокс ajax-ом получить/фильтровать товар, который выводи этот файл Product.php
1) Чекбоксы что у вас фильтруют?
2) В Product.php нет функционала, учитывающего более одного параметра, и то - только категорию.

не понимаю как в обработчике ajax запроса, взять эти данные
Плохо, значит пока еще слабо знаете свою предметную область. внизу вашего вопроса есть пример, эти данные там есть, что с ними делать зависит от того что нужно получить.

надо ли обращаться к этому файлу Product.php
В представленном виде он бесполезен для вашей задачи, нужно писать метод получения списка из произвольных параметров. Потом сформировать из списка хтмл с готовыми блоками и отдать его (сделать echo) обратно. Только в аяксе надо будет заменить dataType: 'html'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы