Так что у меня есть мультивыбор, который я адаптировал с помощью js для работы без клавиши CTRL
$(function(){
$('.select-toggle').each(function(){
var select = $(this), values = {};
$('option',select).each(function(i, option){
values[option.value] = option.selected;
}).click(function(event){
values[this.value] = !values[this.value];
$('option',select).each(function(i, option){
option.selected = values[option.value];
});
});
});
});
и я использую его в нескольких полях ввода, пример ниже.
<tr class="wide">
<td class="input titledinput" style="left: -5px;"><select title="Please select the Consoles/Platforms the game is going to be, or has, released on. You can select more than one."multiple="multiple" class="select-toggle roundedcorners" name="Consoles" size="1"/>';
$qselectconsole = "SELECT * FROM console ORDER BY Console asc";
$rselectconsole = mysqli_query($dbc, $qselectconsole);
if(mysqli_num_rows($rselectconsole) !== false){
while($rowselectconsole = mysqli_fetch_array($rselectconsole, MYSQLI_ASSOC)){
echo '<option value="'.$rowselectconsole['ConsoleID'].'">'.$rowselectconsole['Console'].'</option>';
}
} else {
echo '<option value="0">Something went wrong, please try refreshing the page</option>';
}
echo '</select>
<p2>Platform</p2></td>
</tr>
Мульти-выбор работает как положено.
Теперь я ожидал бы, что $ _POST [‘Consoles’], в этом случае, выведет значение каждого выбранного значения. Но когда я использую $ _POST [‘Consoles’], он выводит только последнюю переменную, которая будет выбрана. Как бы мне получить все выбранные значения (как они понадобятся мне позже для ввода в базу данных).
Я открыт для полного пересмотра моего JS, если это необходимо, я неопытный программист javascript и, честно говоря, действительно не знаю, что я делаю, когда дело доходит до js. Я буду учиться по ходу дела, но если я сделал что-то глупое, что означает, что я могу выбрать только несколько вариантов, но не сохранять каждое отдельное значение, пожалуйста, дайте мне знать.
Сначала вам нужно изменить имя переменной:
name="Consoles"
с:
name="Consoles[]"
Это позволит php иметь все параметры в одном «массиве», если вы пишете в php:
print_r ($_POST['Consoles']);
Вы можете увидеть каждый вариант, выбранный на HTML-странице.
Других решений пока нет …