С помощью JS я получаю кое какие значения. И мне их нужно отправить на страницу, чтобы сторонний парсер зашел на эту страницу и смог их прочитать.
Во первых, сторонний парсер скорее всего не увидит ваши значения полученные через js, так как 99% парсеров читают текст страницы, но не выполняют скрипты, а значит они увидят ровно ничего. Во вторых надо разобраться с кашей в голове и в коде. Давайте смотреть:
При обновлении страницы значение txt не приходит на страницу,
Оно не на страницу должно приходить, а в переменную data внутри скрипта.
отображается null и код $('p.out').text(data);
Нулл отображается так как вы открыли страничку методом get, соответственно переменная $_POST абсолютно пустая. Далее вы скриптом запросили страничку уже методом POST, и в ответ получили ВЕСЬ ЗАПРОШЕННЫЙ ФАЙЛ, начиная с
<html>
и далее
весь текст страницы. Ну и в конце уже правильный ответ в json, так как сейчас метод запроса POST.
Для особо... задумчивых - в аякс колбэк в переменную data возвращается ВСЕ что вернул сервер, а не только то что вы себе нафантазировали.
Закономерный вопрос, я бы сказал классика русской философии - что делать? Во первых, разобраться как это все работает и почему все именно так как получилось. Чисто для лучшего понимания как вообще работает связка пхп-жс-аякс (ну и все подобные взаимодействия клиент-сервер). Ну и логично что если нам нужно получить
только json_encode($arr);
, то выводить его надо ДО вывода всей остальной страницы, и на этом сказать скрипту строгое "стопэ, дальше не надо", при этом если метод НЕ ПОСТ, то пхп скрипт вывода срабатывать вообще не должен. Как это реализовать оставляю на вашу фантазию, сообразительность и умение пользоваться гуглом.