mysql php ajax - связанные цепочки раскрывают значения строк с двумя совпадающими столбцами - PullRequest
1 голос
/ 11 апреля 2020

РЕДАКТИРОВАТЬ:

Я обнаружил, что ошибка здесь:

$ query = "ВЫБЕРИТЬ различную LLANTA ИЗ tyresizestable WHERE FLANCO = '$ flanco' AND ANCHO = '$ ancho' ORDER BY LLANTA AS C ";

Не знаю почему, он не берет информацию из первого выпадающего списка, не получает значение ANCHO. Я знаю это, потому что я пытался сделать это вручную, поместив «ANCHO = '195'», и это работает.

Может кто-нибудь помочь мне, пожалуйста?

Это то, что я должен получить в третьем выпадающий список: enter image description here


ОРИГИНАЛЬНЫЙ ПОСТ:

Я пытаюсь создать серию выпадающих меню, каждое из которых отображает серия опций в зависимости от опции, выбранной при предыдущем выборе. Это сделать фильтр из существующих размеров шин. Я искал по всему inte rnet в течение 2 дней, и третий выпадающий список ничего не дает.

Вот так выглядит таблица базы данных:

enter image description here

Мне нужен раскрывающийся список для «ANCHO» (ширина), другой для «FLANCO» (соотношение сторон), другой для «LLANTA» (радиальный), другой для «CARGA» (максимальная грузоподъемность) и другой для "VELOCIDAD" (максимальная скорость). Каждый из них будет отображать доступные значения с ранее выбранными общими параметрами. Например:

  • Если я выберу «ANCHO» в 175, он может иметь «FLANCO» 50, 55, 60, 65, 70, 75 и 80.
  • Если тогда я выберите "FLANCO" в 70, он может иметь "LLANTA" 13, 14 или 15.

Но, несмотря ни на что, у меня не работает раскрывающийся список "LLANTA". Значения, доступные для раскрывающегося списка, должны быть «13, 14 или 15» на основе ранее выбранных «ANCHO» и «FLANCO» и не возвращать результатов.

enter image description here

Я использовал этот код: https://www.codexworld.com/dynamic-dependent-select-box-using-jquery-ajax-php/

Вся информация находится в той же таблице "tyresizestable".

РЕДАКТИРОВАТЬ: краткое объяснение. Третий раскрывающийся список должен отображать LLANTA (радиальная), доступная для выбранных ANCHO (ширина) и FLANCO (соотношение сторон). В этом случае на скриншотах выбран ANCHO 175 и FLANCO 70. Таким образом, в этом третьем раскрывающемся списке должны отображаться 13, 14 и 15. Каждый ряд представляет собой размер шины / модель.

В этой части, по-моему, происходит сбой:

$query = "SELECT distinct LLANTA FROM tyresizestable WHERE FLANCO = '$flanco' AND ANCHO = '$ancho' ORDER BY LLANTA ASC";

Это код.

AjaxData. php

<?php
include_once 'dbConfig.php'; 

if(!empty($_POST["ANCHO"])){

    $ancho = ($_POST['ANCHO']);
    $query = "SELECT distinct FLANCO FROM tyresizestable WHERE ANCHO = '$ancho' ORDER BY FLANCO ASC"; 
    $result = $db->query($query);

    if($result->num_rows > 0){ 
        echo '<option value="">Selecciona Flanco</option>'; 
        while($row = $result->fetch_assoc()){  
            echo '<option value="'.$row['FLANCO'].'">'.$row['FLANCO'].'</option>'; 
        } 
    }else{ 
        echo '<option value="">No disponible</option>'; 
    } 
}

elseif(!empty($_POST["FLANCO"])){ 

    $ancho = ($_POST['ANCHO']);
    $flanco = ($_POST["FLANCO"]);
    $query = "SELECT distinct LLANTA FROM tyresizestable WHERE FLANCO = '$flanco' AND ANCHO = '$ancho' ORDER BY LLANTA ASC"; 
    $result = $db->query($query); 

    if($result->num_rows > 0){ 
        echo '<option value="">Seleciona Llanta</option>'; 
        while($row = $result->fetch_assoc()){  
            echo '<option value="'.$row['LLANTA'].'">'.$row['LLANTA'].'</option>'; 
        } 
    }else{ 
        echo '<option value="">No disponible</option>'; 
    } 
} 
?>

Index. php

<?php
    include_once 'dbConfig.php'; 

    $query = "SELECT distinct ANCHO FROM tyresizestable"; 
    $result = $db->query($query); 
?>

<select id="ancho">
    <option value="">Selecciona Ancho</option>
    <?php 
    if($result->num_rows > 0){ 
        while($row = $result->fetch_assoc()){  
            echo '<option value="'.$row['ANCHO'].'">'.$row['ANCHO'].'</option>'; 
        } 
    }else{ 
        echo '<option value="">No disponible</option>'; 
    } 
    ?>
</select>

<select id="flanco">
    <option value="">Selecciona Ancho Primero</option>
</select>

<select id="llanta">
    <option value="">Selecciona Flanco Primero</option>
</select>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

<script>
$(document).ready(function(){
    $('#ancho').on('change', function(){
        var ANCHO = $(this).val();
        if(ANCHO){
            $.ajax({
                type:'POST',
                url:'ajaxData.php',
                data:'ANCHO='+ANCHO,
                success:function(html){
                    $('#flanco').html(html);
                    $('#llanta').html('<option value="">Selecciona Flanco Primero</option>'); 
                }
            }); 
        }else{
            $('#flanco').html('<option value="">Selecciona Ancho Primero</option>');
            $('#llanta').html('<option value="">Selecciona Flanco Primero</option>'); 
        }
    });

    $('#flanco').on('change', function(){
        var FLANCO = $(this).val();
        if(FLANCO){
            $.ajax({
                type:'POST',
                url:'ajaxData.php',
                data:'FLANCO='+FLANCO,
                success:function(html){
                    $('#llanta').html(html);
                }
            }); 
        }else{
            $('#llanta').html('<option value="">Selecciona Flanco Primero</option>'); 
        }
    });
});
</script>

Я должен сказать, что я новичок в этой комбинации ajax / mysql / php. Но любая помощь будет оценена. Я надеюсь, что все нестабильно, так как я немного ограничен в Engli sh. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...