Я использую selectize. js, чтобы создать выпадающий список всех городов Бельгии.
var cityselect = $('.city-select');
if (cityselect.length) {
$('.city-select').selectize({
create: false,
sortField: {
field: 'text',
direction: 'asc'
},
dropdownParent: 'body',
plugins: ['remove_button']
});
}
Я создаю поле выбора следующим образом:
<div class="form-group">
<label for="city"><?=lang("register_volunteer_select_city_or_commune")?></label>
<select id="city" class="city-select" name="city" autocomplete="new-password" required data-validation-required-message="<?=lang("register_volunteer_select_city_or_commune_validation")?>">
<option value="" selected><?=lang("register_volunteer_select_city_or_commune")?></option>
<?php
foreach ($citiesbe as $city) {
if ($this->currentLanguage == 'fr') {
$cityName = $city->name_fr;
} else {
$cityName = $city->name_nl;
}
$key = strtolower($cityName) . "," . $city->zip_code;
echo "<option value=\"$key\"> $cityName ($city->zip_code)</option>";
}
?>
</select>
<div class="help-block font-small-3"></div>
</div>
В Бельгии есть много городов с французскими именами (например, Léglise), которые содержат специальный символ (é , è, ç, ...) et c. Переменная $ townsbe, взята из моей таблицы "towns_be", и запись для Léglise выглядит следующим образом:
+--------------+----------+---------+---------+--------+-------+
| cities_be_id | zip_code | name_nl | name_fr | lat | lng |
+--------------+----------+---------+---------+--------+-------+
| 1786 | 6860 | Léglise | Léglise | 49,784 | 5,538 |
+--------------+----------+---------+---------+--------+-------+
Затем в моем выборе я могу выбрать Léglise, и он выглядит великолепно, но когда я проверяю Элемент, я замечу, что data-value установлено следующее значение:
<div data-value="l�glise,6860" class="item"> Léglise (6860)</div>
Поскольку он вставляет специальные символы (в этом примере - é) как? это передает это через переменные POST как? и таким образом он генерирует много ошибок.
Как мне go об этой проблеме?
Я установил кодировку и сопоставление базы данных в utf8mb4, соединение с базой данных через PHP также установлено в utf8mb4, и мой документ содержит строку кодировки:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
I ' Я полностью исчерпал идею о том, как решить эту проблему.