arnaujimenez Ответов: 1

Php: входы автозаполнения при выборе элемента таблицы mysql


Я создаю простое приложение для отправки подтверждающих писем. У меня есть таблица MySQL с 4 столбцами: id, user_email, user_name и user_track. Форма состоит из поля выбора, в котором отображаются все сохраненные сообщения user_email, и двух текстовых вводов, которые должны быть автоматически заполнены при выборе сообщения электронной почты.

Что я уже пробовал:

Я попробовал следующее, Но это просто эхо-все записи для user_track и user_name.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_db";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, user_email, user_name, user_track FROM demo_data ORDER BY id DESC";
$option = '';
$artist = '';
$track = '';
$result = $conn->query($sql);

while($row = $result->fetch_assoc()){
    $option .= '<option value = "'.$row['user_email'].'">'.$row['user_email'].'</option>';
    $track .= '<input type="text" name="track" required value = "'.$row['user_track'].'">';
    $artist .= '<input type="text" name="artist" required value = "'.$row['user_name'].'">';
}
?>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Admin</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div class="main">
    <h1>Accepted demo</h1>
<form action="demo.php" method="post">
 <select name="select"> 
<?php echo $option; ?>
</select><br><br>
<?php echo $track; ?><br><br>
<?php echo $artist; ?><br><br>
<input type="date" name="date" placeholder="Release Date" required>
<br><br>
<input style="margin-top:10px;" class="btn" type="submit" value="Send email">
</form>
</body>
</html>
<?php
$conn->close();
?>

phil.o

Почему элемент option, когда вход был бы более подходящим? В любом случае есть только один выбор для электронной почты.

arnaujimenez

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

1 Ответов

Рейтинг:
8

Chris Copeland

Вам нужно будет посмотреть на использование Javascript здесь, потому что базовая страница не может сделать это сама по себе. Вы можете сделать это, используя data- атрибуты. Что-то сродни этому: JSFiddle[^]

Если вы используете библиотеку, подобную jQuery, то фактическая логика JS будет намного проще и потребует минимальных усилий.


arnaujimenez

Это сработало, большое вам спасибо. Я занимаюсь этим уже целый день... Я должен отметить, что связывание JS-файла не сработало, и мне пришлось добавить скрипт перед закрытием тега body.