Zazwyczaj można użyć tego narzędzia, jednak samo użycie explode jest naiwnym podejściem, ponieważ trzeba trochę oczyścić,
$array = array_filter( array_map('trim', explode(',', $teams ) ) );
To robi 3 rzeczy.
- rozbij $teams przecinkami
- mapa tablic, która uruchamia funkcję dla każdego elementu, w tym przypadku przycinanie, które usuwa białe znaki
- filtr tablicy, który usuwa puste elementy na wypadek, gdybyś miał taki element jak ten
item,,
- zauważ jednak, że array_filter usunie również elementy zfalse
i0
jak również puste, ale w tym przypadku powinno wystarczyć.
Teraz konwersja tablicy na znaczniki powinna być banalnie prosta,
echo '<select name="tournament_team" class="form-control" >';
echo '<option value="">--- Select Team ---</option>';
foreach( $array as $item ){
if($_POST['tournament_team'] == $item){
$selected = ' selected="selected"';
}else{
$selected = '';
}
echo '<option value="'.$item.'"'.$selected.'>'.$item.'</option>';
}
echo '</select>';
Nie ma potrzeby wybierania domyślnego elementu, jeśli jest on renderowany jako pierwszy i nie ma wyboru, zostanie wybrany domyślnie, $selection
służy tylko do lepkości formularzy i można to pominąć lub zmodyfikować zgodnie z własnymi potrzebami.
Ostatnią rzeczą jest to, że będziesz musiał uważać na wielkość liter, ponieważ masz mieszaną wielkość liter, więc nie jestem w 100% pewien, którą chcesz, na przykład india
kontra India
.
Aby pisać małymi literami, użyj strtolower()
aby wielka pierwsza litera używała tylko ucfirst()
Nie testowałem tego, ale powinno być dość blisko, bez literówek, które mogłem popełnić.