Отправить форму в определенную базу данных на основе выпадающего списка - PullRequest
0 голосов
/ 29 июня 2019

У меня есть форма с выпадающим списком ...

-optionA

-optionB

-optionC

-optionD

... каждая опция в списке имеет свою собственную таблицу в базе данных.

-optionA_table

-optionB_table

-optionC_table

-optionD_table

В зависимости от выбора, который пользователь выбирает из выпадающего списка, когда он отправляет форму, которую я хотел бы, чтобы соответствующая таблица была выбрана в базе данных, чтобы пользователь просто нажимал «Отправить» ион отправляет данные в соответствующую таблицу в соответствии с выбранной опцией в раскрывающемся списке.Как бы вы этого достигли?

1 Ответ

1 голос
/ 29 июня 2019

Вы можете просто назвать параметры с именами таблиц:

<select name="options">
    <option value="table_a">optionA</option>
    <option value="table_b">optionB</option>
    <option value="table_c">optionC</option>
    <option value="table_d">optionD</option>
</select>

Затем при отправке:

<?php
$tables = ["table_a", "table_b", "table_c", "table_d"];
$table = isset($_POST["table"]) && in_array($_POST["table"], $tables)
            ? $_POST["table"]
            : $tables[0];

$sql = "INSERT INTO `$table`...";

Обратите внимание, что вы должны проверить ввод имени таблицы.(как я проверил, находится ли он в массиве)

Если вы хотите быть менее повторяющимся, вы можете сделать:

$tables = [
    "table_a" => "optionA",
    "table_b" => "optionB",
    "table_c" => "optionC",
    "table_d" => "optionD",
];

// When building the form:
foreach ($tables as $tableName => $optionName) {
    echo "<option value='$tableName'>$optionName</option>";
}


// When submiting
$table = isset($_POST["table"], $tables[$_POST["table"]])
            ? $tables[$_POST["table"]]
            : $tables[0];

$sql = "INSERT INTO `$table`...";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...