Я бы порекомендовал два изменения.
Во-первых, поскольку вам нужен ассоциативный массив в PHP, вы должны использовать объект, а не массив в Javascript:
var myObject = new Object();
$(".setttings").each(function(){
myObject[$(this).attr("id")] = $(this).val();
});
Далее вы хотите передать его в раздел данных немного по-другому:
$.ajax({
type: "POST",
url: "post.php",
data: {
settings: $.param(myObject)
}
});
Важной частью является $ .param, поскольку он преобразует объект в серию параметров (подходит для строки запроса).
Последнее, что вам нужно сделать на сервере, чтобы он заработал, - это проанализировать его в PHP:
parse_str($_POST['settings'], $settings);
Теперь вы можете получить доступ ко всему в переменной $settings
, как в JavaScript.
$settings['id'] = "value";