У меня есть следующий HTML:
<input type="checkbox" id="options_1" value="options_1" name="options[]">
<input type="checkbox" id="options_2" value="options_2" name="options[]">
<input type="checkbox" id="options_3" value="options_3" name="options[]">
Я проверяю первые два варианта и отправляю его на сервер через ajax в jQuery:
$.ajax({
type: "POST",
url: "myfile.php",
data: {
'options':$('input[name="options[]"]').serialize()
},
dataType: 'json',
beforeSend: function(){
//do some stuff
},
success: function(msg){
//do some stuff
}
});
Firebug показывает мне данные, которыебыло опубликовано:
опции опции% 5B% 5D = опции_1 & опции% 5B% 5D = опции_2
Пока все хорошо.
В myfile.php я получаю POST-переменную следующим образом:
$options = $_POST['options'];
Теперь, когда я отображаю $ options, я получаю это:
"options[]=options_1&options;[]=options_2"
Где эта точка с запятой передвторая пара скобок взялась?Это сводит меня с ума.
Я уже использовал utf8_decode в данных POST, а также urldecode и rawurldecode .Ничего не меняетсяЯ также избежал квадратных скобок в вызове ajax следующим образом:
data: {
'options':$('input[name="options\\[\\]"]').serialize()
},
Это тоже не помогло.Любые идеи кто-нибудь?