Мне не совсем понятно, в чем именно твоя проблема.Кажется, вы пытаетесь передать данные с текущей страницы (с которой вы поделились кодом) на repaired.php
.
Поскольку код, который вы опубликовали, (извините за грубость) беспорядок, яЯ попытаюсь добавить некоторую структуру (я, очевидно, не собираюсь тщательно ее очищать, однако, это будет ваша работа).
Во-первых, все ваши <link>
теги должны быть где-то внутри вашей <head>
части ... Я думаю, на вашем сайте это будет в пределах header.php
pages / header.php
<!doctype html>
<html>
<head>
<title>Your App</title>
<!-- Place your <link> elements here -->
<link rel="canonical" href="https://getbootstrap.com/docs/4.3/examples/sign-in/">
<link href="https://getbootstrap.com/docs/4.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link href="https://getbootstrap.com/docs/4.3/examples/sign-in/signin.css" rel="stylesheet">
</head>
<body>
<!-- Body part begins here
Place for header elements and navigation here, I guess -->
Затем, файл, где вы делаете все подключения и пытаетесь отправить его через вашу форму, я просто называю это action.php здесь.Поскольку я не знаю, что должно отображаться в вашем элементе <option>
, я взял то же самое, что и для атрибута value
.Обратите внимание, что там, где расположен while
-петл, он находится ВНУТРИ вашего элемента <select>
(который сам ВНУТРИ вашего элемента <form>
), поскольку вам нужен только ОДИН из них.У вас будет несколько <option>
элементов, поэтому они находятся внутри вашего цикла.Кроме того, я поместил кнопку отправки в конце формы, которая позволит нам отправить форму.
action.php
<?php
include "pages/header.php";
// Database variables and connection
// ...
// Data fetching and displaying
$sql = "SELECT * FROM `table_3`";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo '<form action="repaired.php" method="post">';
echo ' <select id="role" name="role" class="form-signin" class="form-control">';
while ($row = $result->fetch_assoc()) {
echo ' <option value="' . $row['model'] . '">' . $row['model'] . '</option>';
}
echo ' </select>';
echo ' <button type="submit" name="form_send">Send</button>';
echo '</form>';
} else {
echo 'No data found';
}
Теперь, в течениеВаш repaired.php
файл, который вам, очевидно, нужен для получения опубликованных данныхПоскольку я не знаю, что вы хотите сделать со своими данными, я могу просто опубликовать идею о том, что вы могли бы сделать.Если вы отправляете форму с помощью метода post
(см. Код выше, method="post"
), вы можете получить доступ к данным формы с помощью суперглобального $_POST
.Это массив, в котором хранятся ваши опубликованные данные ... Атрибут name
ваших элементов формы будет ключом для доступа к вашим данным.Итак, если я отправляю форму с одним входом, а вход имеет атрибут name="first_name"
, я могу получить доступ к его значению с помощью $_POST['first_name']
на целевой странице (атрибут action
вашего <form>
).В вашем случае у нас есть <select>
с name="role"
, поэтому вы сможете получить к нему доступ, как объяснено:
repaired.php
<?php
/*
First we check, if the submit button was pressed... If not,
we echo an error message, if yes, we can proceed to access the posted data
*/
if (!isset($_POST['form_send'])) {
echo 'No data submitted';
} else {
echo $_POST['role'];
}
MyОтвет, если он даже решает вашу проблему, далек от совершенства и не проверен, поэтому я не знаю, есть ли в нем какие-либо ошибки.Я предлагаю вам продолжать практиковать и расширять свои знания.Это очень хорошая идея, чтобы научиться отделять свой логический код от разметки.Я рекомендую вам ознакомиться с MVC или MOVE или другими архитектурными паттернами или, если вы хотите сначала пойти по более простому маршруту, почитать о механизмах шаблонов (например, Twig ).Кроме того, я предлагаю вам расширить свои знания по основам HTML ( MDN - хорошее место для этого, ИМХО), поскольку мне кажется, что у вас их пока нет, судя покак вы структурировали свои <form>
части.
Я все еще надеюсь, что мой ответ помог вам вернуться на правильный путь