кодигнитор ecommece вариант шоу на первый план - PullRequest
0 голосов
/ 27 марта 2020

У меня есть проблема, с которой я сталкиваюсь, я выбираю маленький размер, и у меня есть 2 цвета в маленьком размере, если я выбираю размер, а его вариант цвета выбирается первым, но когда я выбираю второй, выбор одной стороны исчезает, как я могу выбрать или показать цвет от имени размеров в продуктах ..

     <?php
                            $none = isset($d_none) ? $d_none : '';

                            $attr_check = false;
                            $product_id = $record->id;
                            if ($record->parent_id == 0) {
                                $parent_check = "products.id = '$product_id' OR products.parent_id = '$product_id'";
                            } else {
                                $parent_check = "products.id = '$record->parent_id' OR products.parent_id = '$record->parent_id'";
                            }
                            $sql = "SELECT
                              products.parent_id,
                              products.id,
                              products.title,
                             products.slug AS p_ids,
                              products_attributes_groups.title as `type`,
                              products_attributes_values.title as `value`,
                              products_attributes_values.color_code,
                              products_attributes.sku
                            FROM products
                              INNER JOIN products_attributes
                                ON products.id = products_attributes.products
                              LEFT JOIN products_attributes_values
                                ON products_attributes.value = products_attributes_values.id
                              LEFT JOIN products_attributes_groups
                                ON products_attributes.groups = products_attributes_groups.id
                            WHERE (" . $parent_check . ") AND products.active=1 AND products.deleted=0 and products_attributes_values.title != '' and products_attributes_groups.id = 1 group by products_attributes_values.title order by products_attributes_groups.title DESC";
                            $attr = $this->db->query($sql)->result();

                            if ($attr) {
                            $x = 1;
                                $type = 'size';
                                $attr_select = "<div class='form-group mx-3 my-1'><div style='display: none;' class='".$type."_tooltip col-12'></div><label class='mb-2'>$type</label><ul onchange='show_attr_product(this)' id='attr_$type' class='list-inline rounded-0'>";
                            foreach ($attr as $row) {
                                    $selects = explode(',', $row->p_ids);
                                    $attr_check = true;
                                    if (in_array($record->slug, $selects)) {
                                        if (isset($active)) {
                                            $activate = $active;
                                        } else {
                                            $active = 'active';
                                            if (in_array($record->slug, $selects)) {
                                                $activate = $active;
                                            } else {
                                                $activate = '';
                                            }
                                        }

                                        echo '<input type="hidden" id="prev_' . $row->type . '" value="' . $row->p_ids . '">';
                                        $attr_select .= "<li sku='$row->sku' class='list-inline-item pt-1 product_box_" . $row->type . " add_border$row->id active_child $activate' onclick='show_attr_product(this)' title='$row->value' value='" . $row->p_ids . "' style=' background:#$row->color_code;'> $row->value</li>";
                                    } else {
                                        $attr_select .= "<li sku='$row->sku' class='list-inline-item pt-1 product_box_" . $row->type . " add_border$row->id active_child' onclick='show_attr_product(this)' value='" . $row->p_ids . "' title='$row->value' style=' background:#$row->color_code;'>$row->value</li>";
                                    }

                                    $x++;

                                }
                                    $attr_select .= "</ul></div>";

                                echo $attr_check ? $attr_select : '';
                            }

Структура данных вариант продукта

...