Если вы используете jQuery <1.4, вы должны указать <code>dataType: "json".
Начиная с 1.4, dataType по умолчанию:
Интеллектуальная догадка (xml, json, script,
или html)
Но для этого необходимо, чтобы заголовок ответа содержал строку "json". Итак, вы хотите отправить:
header('Content-type: application/json');
Эта недавно добавленная гибкость с dataType позволяет обработчикам реагировать на несколько возвращенных типов.
Если проблема не исчезнет, вы должны предупредить весь ответ alert(results);
, чтобы увидеть, что на самом деле возвращается.
Здесь много похожих ответов. Не уверен, кто это начал, но тот, кто, несомненно, вторгся в Польшу.