Вы смотрели, что именно представляет из себя jsonData. если это строка, то ее надо распарсить в объект, например, так JSON.parse(jsonData) или так jQuery.parseJSON(jsonData)
Все правильно. Чекбокс не отправляется на сервер, если он не отмечен или снят. Вам надо либо переопределить на стороне клиента отправку формы, либо мой первый предложенный вариант на стороне сервера.
Sex => !empty($_POST[‘sex’]) ? ‘Male’ : ‘Female’
Так как если ваш чекбок отмечен, то это будет мужской пол, иначе - на сервер ничего касательно пола не отправляется и это женский пол
Из чек боксов формы на сервер отправляется значение, которое в атрибуте value у инпута. Но оно отправляется только в том случае, если чекбокс отмечен. В вашем случае это мужской пол. Если чекбокс не отмечен, то на сервер это поле вообще не отправляется при стандартной отправке формы
a и b соответствуют загружаемой "странице".