Назначить и вернуть опцию выбора динамически?

У меня есть форма выбора, которая генерируется на основе результатов, возвращаемых из запроса MySQL.

В1) Как мне назначить имя (целочисленное значение) на основе извлечения teamID из базы данных?

Q2) Как я мог тогда выбрать опцию и добавить ее в переменную php, которая затем может быть использована для обновления таблицы на основе выбора пользователей?

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

<?php

$data= mysql_query("SELECT * FROM teams
WHERE teamID NOT IN (
SELECT TeamID
FROM leagueInformation
WHERE leagueID = 1
)

") or die(mysql_query());

echo "<select name=\"team\" class=\"col-lg-12\" style=\"padding:10px; background:#e1e1e1;\">\n";

while($info = mysql_fetch_array( $data ))
{

$teamID = $info['teamID'];

echo "<option name=" . $team . "  value=" . $teamID . ">" .$info['teamName'] . "</option>";}

echo "</select>\n";
?>

1

Решение

В1) Как мне назначить имя (целочисленное значение) на основе извлечения teamID из базы данных?

Этот вопрос не так понятен, но я думаю, это то, что вы пытаетесь сделать?

<?php $data= mysql_query(
"SELECT * FROM teams WHERE teamID NOT IN (
SELECT TeamID
FROM leagueInformation
WHERE leagueID = 1)
") or die(mysql_query());
?>

<form name="teams_form" method="POST">
<select name="team" class="col-lg-12" style="...">
<?php while($info = mysql_fetch_array( $data )): ?>
<option value="<?php echo $info['teamID'] ?>">
<?php echo $info['teamName'] ?>
</option>
<?php endwhile; ?>
</select>
</form>

Q2) Как я мог тогда выбрать опцию и добавить ее в переменную php, которая затем может быть использована для обновления таблицы на основе выбора пользователей?

Сначала вам нужно будет обернуть ваш выбор внутри формы (как я сделал), затем вы можете проверить выбранное значение следующим образом:

if(isset($_POST['team']) && !empty['team']){
$selected_team =  $_POST['team'];
mysql_query("Do what you want with the selected team");
}

Некоторые заметки о вашем коде:

  1. Избегайте использования mysql_*использовать mysqli_* или же PDOи всегда предотвращать SQL-инъекции
  2. <option> у тегов нет свойств имени, и в этом случае $ team не определен
  3. Встраивайте PHP внутри HTML, а не HTML в PHP.
0

Другие решения

  1. Ваш первый вопрос пока не имеет смысла для меня, я обновлю ответ, когда это произойдет.
  2. Когда пользователь отправляет форму, вы можете выбрать опцию, используя $_GET или же $_POST (в зависимости от вашей формы method) переменные.

Как это:

$teamId = $_POST['team'];
0

положить все в <form/> с действием, указывающим на страницу, и методом (get или post), затем в скрипте получите переменную с помощью <select/> чтение значения имени $_GET или же $_POST переменные, и я цитирую комментарий об «имени» в опции как недопустимый атрибут.

0