TransWikia.com

Получить данные ajax

Stack Overflow на русском Asked by ilyaaa521 on July 25, 2020

Делаю фильтр, вот форма:

<form id="filter__form">
                            <input type="text" name="cat_id" style="display: none;" value="{{category_id}}">
                            <div class="filter__new-item">
                                <div class="filter__new-item-name">Вес</div>
                                <div class="filter__new-item-result-block">
                                    <div class="filter__new-item-result">
                                        <input type="checkbox" name="f__ves" value="{{ filter_item_ves }}">
                                                    <span>{{ filter_item_ves }}</span>
                                    </div>
                                </div>
                            </div>
    </form>

Вытягиваю все выбранные checkbox:

<script type="text/javascript">
    
          let ves = $("input[name~='f__ves']");
          let arr_ves = [];
        
          for (let i = 0; ves.length > i; i++) {
            ves[i].onclick = function() {
              this.classList.toggle("check_true");
              let elemId = $(this).val();
              if (this.classList.contains("check_true") === true) {
                if (arr_ves.indexOf(elemId) === -1) {
                  arr_ves.push(elemId);
                }
              } else {
                let index = arr_ves.indexOf(elemId);
                if (index >= 0) {
                  arr_ves.splice(index, 1);
                }
              }
    //        console.log(arr_ves);
            }
          }

Передаю через ajax в обработчик:

$("#result__btn").click(function(){
            let ves_data = {
                ves: arr_ves,
            };
            let material_data = {
                material: arr_material,
            };
            let cat_id = $("input[name~='cat_id']").val();
            console.log(ves_data);
            console.log(material_data);
    
            $.ajax({
                url: '/filter.php',
                method: 'post',
                dataType: 'html',
                data: {'ves[]':ves_data, 'material[]':material_data, 'cat_id':cat_id},
                success: function(response){
            //  result = $.parseJSON(response);
                alert(response);
                },
                error: function(response) { // Данные не отправлены
                    alert('Ошибка. Данные не отправлены.');
                }
            });
        });

Сам обработчик:

// Получаем данные формы
$cat_id = $_POST['cat_id'];



// Получаем id товаров текущей категории
$sql = "SELECT * FROM `oc_product_to_category` WHERE category_id = '" . $cat_id . "' ";
$query = mysqli_query($dbh, $sql);
        $product_id_arr = array();
        while ($row = $query->fetch_assoc()) {
            $product_id_arr[] = $row['product_id'];
            
        }
    



if (isset($_POST['ves']) and !isset($_POST['material'])) {
            echo "не существует пост материал но есть вес";
            $get_ves = $_POST['ves'];  // Вес
            if ($product_id_arr) {
                foreach ($get_ves as $get_ves_item) {
                    foreach ($product_id_arr as $prod_id) {

                     $prod_get_attr = "SELECT * FROM `oc_product_attribute` WHERE product_id = '" . $prod_id . "' AND attribute_id = '" . 28 . "' AND text = '" . $get_ves_item . "'"; // получаем id товаров, выбранных атрибутов Вес
                     $query_prod_get_attr = mysqli_query($dbh, $prod_get_attr);
                     

                     foreach ($query_prod_get_attr as $product_id) {
                        $product_val[] = $product_id['product_id']; 
                    }
                    
                }
            
                
            }
            var_dump($product_val);
        }
        }

Почему то получаю NULL, делал без ajax, все было ок, получал массив нужных product_id. Подскажите, пожалуйста, где ошибка?

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP