А почему ты решил, что оно должно работать?

Ты не совсем понимаешь, как работает JS.
Тут смотри, что получается. Ты вызвал функцию maket_save(). Она сделала ПОСТ-запрос и назначила функцию-обработчик. И делается выход из функции.
Далее (позднее по времени) приходит ответ от сервера. Который ты возвращаешь через "return(save);". Вот только куда ему возвращаться-то? Это ж возврат из безымянной функции-обработчика запроса ПОСТ, а не из market_save().
Если ты хочешь убедиться, что что-то пришло, либо обработать это, то делай эту обработку в безымянной функции, в том месте, где сейчас написано "return(save);" А функцию maket_save() вызывай "просто так", без алерта.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)