У меня есть два выпадающих списка, которые заполняются из таблиц MySQL. В таблицах MySQL они имеют ограничения внешнего ключа, поэтому таблица «активы» имеет столбец «отдел», который связан с таблицей отдела. Таким образом, у каждого актива есть связанный отдел.PHP MySQl Chained Select
Мое первое выпадающее меню - «отдел», и я хочу, чтобы второе выпадающее меню отображало только результаты из выбранного отдела.
Вот мой код.
<select id="location" name="location">
<option value="">Select Asset Location</option>
<?php
$pdo = new PDO('mysql:host=localhost;dbname=maintlog', 'root', '*******');
#Set Error Mode to ERRMODE_EXCEPTION.
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('Select id,name from location');
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo "<option value='$row[id]'>$row[name]</option>";
}
?>
</select>
и актива:
<select id="asset" name="asset">
<option value="">Select Asset</option>
<?php
$pdo = new PDO('mysql:host=localhost;dbname=maintlog', 'root', '*****');
#Set Error Mode to ERRMODE_EXCEPTION.
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('Select id,assetcode from assets');
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo "<option value='$row[id]'>$row[assetcode]</option>";
}
?>
</select>
Я понятия не имею, где начать с этим, я сделал JavaScript прикованных выбирает, но не с MySQL/PHP.
Thanks
Javascript change событие в первом выпадающем списке. В случае сделайте запрос ajax и заполните второе раскрывающееся меню. – Daan
Ничто в этом коде как показано на рисунке не может SELECT отдела. Поэтому вам придется сначала загрузить раскрывающийся список Asset. Затем, когда Dept выбирается с использованием AJAX, запросите содержимое раскрывающегося списка Asset из отдельного PHP-скрипта, передайте ему выбранный Dept_id и верните активы на основе этого Dept_id и заполните DDE-файлы с помощью javascript – RiggsFolly
. Было бы проще, если бы значения были в HTML как отдельные варианты. Там всего около 10 мест, и я не могу предвидеть, что растет ... –