У меня есть база данных, скажем, 450 элементов в ней. Каждый элемент имеет номер модели и идентификатор производителя.Заполнение выпадающего окна из базы данных без перезагрузки страницы
На странице поиска у меня есть возможность поиска по модели &, но списки являются довольно грязными.
В настоящее время вы должны выбрать марку, а затем нажать кнопку «Отправить», а затем у вас есть другое раскрывающееся меню со списком моделей с одинаковой маркой.
Я хотел бы сделать так, чтобы при выборе make он автоматически заполнил выбор паттерна модели, используя javascript, ajax, jquery или действительно все, что сделало бы это возможным.
У меня не так много, чтобы продолжать здесь, так как я не очень хорошо знаю языки. Реальная проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как динамически заполнять массив из базы данных на основе того, что выбрано из первого раскрывающегося списка, а затем использовать его для заполнения второго раскрывающегося списка.
Любые рекомендации/рабочие решения будут очень признательны.
ПРИМЕЧАНИЯ: В настоящее время, как я уже говорил, вам нужно выбрать make, hit submit, затем выбрать модель - это мой текущий код для этого, хотя я не думаю, что это будет очень полезно, используя $ _GET.
<div class="panel panel-info">
<div class="panel-heading">
<h3 class="panel-title">Model Search</h3>
</div>
<div class="panel-body">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#type" aria-controls="type" role="tab" data-toggle="tab">Make</a></li>
<li role="presentation"><a href="#model" aria-controls="model" role="tab" data-toggle="tab">Model</a></li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade in active" id="type">
<br>
<form method="GET">
<div class="input-group">
<?php
$check = mysqli_query($con, "SELECT DISTINCT Make FROM Products ORDER BY Make ASC");
echo '<select name="MAKE" style="width:100%;height:33px;">';
if(strcmp($_GET['MAKE'], '') != 0)
echo '<option value="' . $_GET['MAKE'] . '">' . $_GET['MAKE'] . '</option>';
while($row = mysqli_fetch_array($check)) {
echo '<option value="' . $row["Make"] . '">' . $row["Make"] . '</option>';
}
echo '</select>';
?>
<span class="input-group-btn">
<button class="btn btn-default" onclick="window.location.href='#model'" type="submit">Find Models</button>
</span>
</div><!-- /input-group -->
</form>
</div>
<div role="tabpanel" class="tab-pane fade" id="model">
<br>
<form method="GET">
<div class="input-group">
<?php
$Make = $_GET['MAKE'];
$check = mysqli_query($con, "SELECT * FROM Products WHERE `Make`='$Make' ORDER BY Model ASC");
echo '<input type="hidden" name="MAKE" value="' . $Make . '">';
echo '<select name="UPC" style="width:100%;height:33px;">';
while($row = mysqli_fetch_array($check)) {
echo '<option value="' . $row["UPC"] . '">' . $row["Model"] . '</option>';
}
echo '</select>';
?>
<span class="input-group-btn">
<button class="btn btn-default" onclick="window.location.href='#model'" type="submit">Search!</button>
</span>
</div><!-- /input-group -->
</form>
</div>
</div>
</div>
<div class="panel-footer"></div>
</div>
у вас есть [SQL инъекции] (http://php.net/manual/s ecurity.database.sql-injection.php) в этом коде. –
Я бы заполнил пару массивов javascript, со всем, что вам нужно, при начальной загрузке страницы, а затем с помощью Javascript динамически заполнить выпадающий селектор, поскольку вы идете ... нет необходимости в ajax. –
@ JanSchär - это частное программное обеспечение. На данный момент это не очень беспокоит. –