Интерактивное выпадающее меню, которое автоматически заполняет выпадающие значения в зависимости от того, какие пользовательские вводы - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь создать интерактивное раскрывающееся меню, которое использует запрос mysqli для автозаполнения значений в каждом раскрывающемся списке. До сих пор первое выпадающее меню отображает бренды в базе данных для каждой части, так что работает нормально. Однако второе раскрывающееся меню отображается независимо от значения $ selected, равного true или false, но также когда я выбираю марку, результаты не заполняются автоматически.

    <?php
            foreach($parts as $col) { ?>
                <dl>
                    <dt><?php echo $col?></dt>
                    <dd>
                        <select id="search_status" name="state" data-placeholder="State">
                            <?php
                           $brand = $database->fetch_col($col);
                           $selected = false;
                           ?>
                               <option value=""></option>
                            <?php foreach($brand as $b){ ?>
                               <option value="<?php $selected = true; ?>"><?php echo $b['Brand']; ?></option>
                            <?php }?>
                        </select>
                        <?php if($selected = true){
                            $item = $database->fetch_row($col, $b);
                            ?>
                        <select>
                            <option></option>.
                                   <?php foreach($item as $i) {?>
                                   <option><?php echo $i['Model']; ?></option>
                            <?php }?>
                        </select>
                        <?php
                        } else {
                            echo "Please select Brand";
                        }
                        ?>
                        <p><?php
                        echo var_dump($item);
                        ?><p>
                    </dd>
                </dl>
            <?php }?>

Я вполне уверен, что переменная $ selected не соответствует остальной части формы.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Вы можете использовать ajax, чтобы сделать это. Здесь я поделюсь некоторым примером. Вы можете найти свое решение из него ... Главная страница:

  <html>
<head>
<script>
function showHint(str) {
    if (str.length == 0) {
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("txtHint").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("POST", "ajax.php?q=" + str, true);
        xmlhttp.send();
    }
}
</script>
</head>
<body>
<form>
<input type="text" onkeyup="showHint(this.value)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html> 

Страница AJax ajax.php

    <?php 
echo "ss";
?>


<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<form method="POST">


<a href="signup.php">Sign up</a>
<a href="signup.php">Sign up</a> 
<a href="signup.php">Sign up</a> 
<a href="signup.php">Sign up</a> 
</form>
</body>
</html>

Надеюсь, это поможет вам.

0 голосов
/ 15 мая 2018

Вы присваиваете $ selected для true, используя один знак равенства - если вы хотите сравнить значение с true, вам нужно использовать == или ===.

http://php.net/manual/en/language.operators.comparison.php

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