#php #mysql #html
#php #mysql #HTML
Вопрос:
Я создаю простую веб-форму (или привязку к ней!), Которая отображает список футбольных команд. Этот список команд находится в таблице mysql с одним столбцом. Как я могу сделать так, чтобы, если команда была выбрана в веб-форме, ее нельзя было выбрать снова в форме? т.Е. Чтобы убедиться, что они случайно не выбраны для игры друг с другом или не играют дважды одновременно. Мой код пока выглядит так, как показано ниже, и, похоже, работает нормально. Он включает в себя несколько других итераций того же кода для других команд хозяев и гостей. Любые указания / помощь с благодарностью.
<select name="hometeam">
<?php
$query = "SELECT * FROM teams order by teamname";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo "<option value="".$row['teamname']."">".$row['teamname']."</option>n ";
}
?>
</select>
<select name="hometeam2">
<?php
$query = "SELECT * FROM teams order by teamname";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo "<option value="".$row['teamname']."">".$row['teamname']."</option>n ";
}
?>
</select>
Ответ №1:
I метод: возможным и простым решением этого может быть использование javascript. То есть, как только выбор был сделан в обоих полях со списком, то перед отправкой формы на сервер вы можете сравнить два значения, и если они окажутся одинаковыми, вы можете предупредить пользователя об этом.
Кроме того, просто для добавления, хотя вы проверяете с помощью javascript, но всегда желательно повторно проверять на стороне сервера, чтобы избежать взлома. Надеюсь, это поможет.
Метод II: Если вы не хотите показывать команду, выбранную в одном раскрывающемся списке, в другом раскрывающемся списке, то для этого вам придется использовать Ajax следующим образом:
При выборе значения в одном выпадающем списке — запустите ajax-запрос — отправка выбранного значения из выпадающего списка на сервер. Теперь измените запрос на сервере, чтобы выбрать все значения, исключая это значение, а затем отправьте значения обратно клиенту. Таким образом, пользователь сможет видеть значения, исключая выбранное.
Надеюсь, это поможет.
Комментарии:
1. Мне нравится метод 2. Это было больше похоже на то, что я думал. Теперь, чтобы найти учебник по Ajax. 🙂
Ответ №2:
jQuery сделал бы это довольно просто:
<script type="text/javascript">
$(document).ready(function() {
$("select[name=hometeam]").change(function() {
if ( $(this).val() == $("select[name=hometeam2]").val() ) {
alert("This team cannot play itself!");
}
});
$("select[name=hometeam2]").change(function() {
if ( $(this).val() == $("select[name=hometeam]").val() ) {
alert("This team cannot play itself!");
}
});
});
</script>
Комментарии:
1. Это здорово и работает так, как описано, хотя я надеялся на способ даже не предоставлять пользователю возможность выбора команды дважды.