Динамический выпадающий список с данными из mysql на php

406
23 июля 2022, 15:50

Помогите реализовать задачу, иметься таблица в базе данных.

Нужно реализовать выпадающее меню в таблице, где можно выбрать пользователя из бд и выведутся его данные, заполнив таблицу. На данный момент все выглядит примерно так.

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

Ниже представлен код

<?php
$servername = "x";
$database = "x";
$username = "x";
$password = "x";
$conn = mysqli_connect($servername, $username, $password, $database); 
$name = $_GET['name_surname'];
$email = $_GET['email'];
$type = $_GET['type'];
$delivery = $_GET['browser'];
$adres = $_GET['address'];
$model_phone = $_GET['iphone'];
$sql = "INSERT INTO clients (name, email, type_phone, delivery, address, model) 
        VALUES ('$name', '$email', '$type', '$delivery','$adres', '$model_phone')";
if (mysqli_query($conn, $sql)) {
      echo "Ваши данные представлены ниже:<br/>";
} else {
      echo "Ошибка: <br/>" . $sql . "<br>" . mysqli_error($conn);
}
echo '<table border="1">';
    echo '<tr>';
        echo '<td>',"Имя: ",'</td>';
        echo '<td>',($_GET['name_surname']),'</td>';
    echo '</tr>';
    echo '<tr>';
        echo '<td>',"Ваш email: ",'</td>';
        echo '<td>',($_GET['email']),'</td>';
    echo '</tr>';
    echo '<tr>';
        echo '<td>',"Вы заказали: ",'</td>';
        echo '<td>',($_GET['type']) . " ". $_GET['iphone'], " iPhone",'</td>';
    echo '</tr>';
    echo '<tr>';
        echo '<td>',"Способ доставки: ",'</td>';
        echo '<td>',($_GET['browser']),'</td>';
    echo '</tr>';
    echo '<tr>';
        echo '<td>',"Адрес доставки: ",'</td>';
        echo '<td>',($_GET['address']),'</td>';
    echo '</tr>';
echo '</table>';
?>
Answer 1

С помощью json подгружаете с бд

<table border="1">
    <tr>
        <td>Имя:</td>
        <td>
            <select>
            <?php
                foreach ($row as $key => $val1) {
                    foreach ($val1 as $val2) {
                        echo "<option name='$val2'>$val2</option>";
                    }
                }
            ?>
            </select>
        </td>
    </tr>
    <tr>
        <td>Ваш email</td>
        <td><?=$row['email'] ?></td>
    </tr>
    <tr>
        <td>Вы заказали:</td>
        <td><?=$row['type'] ?><?=$row['iphone'] ?> iPhone</td>
    </tr>
    <tr>
        <td>Способ доставки:</td>
        <td><?=$row['browser'] ?></td>
    </tr>
    <tr>
        <td>Адрес доставки:</td>
        <td><?=$row['address'] ?></td>
    </tr>
</table>
Answer 2
<?php 
$conn1 = new mysqli('192.168.0.1', 'login', '***', 'tabl');
// Check connection
if ($conn1->connect_error) {
    die("Connection failed: " . $conn1->connect_error);
} 
 mysqli_set_charset($conn1,"utf8");
$query = "select * from clients";
$result = $conn1->query($query);
while($row = mysqli_fetch_assoc($result))
{
$arr[]=$row;
$arrs[]=$row['name'];
}
echo'<table  cellspacing="0" border="2" style="table-layout: fixed; width: 400px">';
echo '<form action="index.php" method="post">';
 $name=array('id' => 'Идентификатор', 'name'=>'Имя', 'email'=>'Почтовый адрес', 'type_phone'=>'Тип телефона', 'delivery'=>'Доставка', 'address'=>'адрес', 'model'=>'модель');
foreach ($arr[0] as $key => $value) 
{
if($key=='name'){
echo'<tr>';

echo '<td style="width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap">'.$name[$key].' Выбор имени:  ';
echo '<select name="hero">';
foreach ($arrs as $key1 => $value1) {
echo'<option value='.$value1.'>'.$value1.'</option>';
    
}
echo '/<select>';
echo '<br><input type="submit" value="Отправить">';
echo'<td style="width: 100px;" >'.$value.'</td>';
echo'</tr>';
}else{
echo'<tr>';
echo '<td style="width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap">'.$name[$key].'<select><td style="width: 100px;">'.$value.'</td>';
echo'</tr>';
}
}
echo '</form>';
echo'</table>';

if(isset($_POST['hero'])){
$data=$_POST['hero'];
$conn1 = new mysqli('192.168.0.1', 'login', '***', 'tabl');
// Check connection
if ($conn1->connect_error) {
    die("Connection failed: " . $conn1->connect_error);
} 
 mysqli_set_charset($conn1,"utf8");

$query = "select * from clients where name='".$data."'";
$result = $conn1->query($query);
while($row1 = mysqli_fetch_assoc($result))
{
//print_r($row)."<br>\n";
$arr1[]=$row1;
//$arrs[]=$row['name'];
}

 echo'<table  cellspacing="0" border="2" style="table-layout: fixed; width: 200px">';
 $name1=array('id' => 'Идентификатор', 'name'=>'Имя', 'email'=>'Почтовый адрес', 'type_phone'=>'Тип телефона', 'delivery'=>'Доставка', 'address'=>'адрес', 'model'=>'модель');
foreach ($arr1 as $key2 => $value2) 
{
 echo'<tr>';
echo '<td style="width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap">'.$name1[$key2].'<select><td style="width: 100px;">'.$value2.'</td>';
echo'</tr>';
}

echo'</table>';
echo '<br>';
}
?>
READ ALSO
Зачем на нужны join если есть where?

Зачем на нужны join если есть where?

Учу sql заново, и у меня возник вопрос зачем вообще нужны джоиныОбъеденить таблицы ведь можно с помощью фореина и праймари ключей в таблицах...

307
Qt, C++ захват ссылки в асинхронной лямбде

Qt, C++ захват ссылки в асинхронной лямбде

Насколько безопасно так делать?

411
Чтение com портов на С++

Чтение com портов на С++

Есть ардуина и подключенный к ней датчик (какой, роли не играет) он подает данные на ардуино, а она соответственно на пкМне нужно написать...

352
Инициализация вектора объектов (с конструктором, принимающим значения), являющегося членом класса

Инициализация вектора объектов (с конструктором, принимающим значения), являющегося членом класса

Количество объектов класса MCP в векторе _rheos заранее неизвестноstd::vector использую впервые

354