Итак, мы встречаемся снова!
В комментариях к вопросу скрыта ссылка на фактический файл Javascript . Это 2200 строк, 73 КБ, и плохо отформатированы. Это также , полученное из демонстрации для API Google Планета Земля .
Как отмечено в комментариях здесь и в предыдущих вопросах, вы можете страдать от фундаментального недоразумения о том, как работает PHP и как PHP взаимодействует с Javascript.
Давайте посмотрим на строки 62-67 milktruck.js:
//experiment with php and javascript interaction
//'<?php $simpleString = "i hope this works"; ?>'
//var simple = "<?php echo $simpleString; ?>";
Причина, по которой это никогда не работало, состоит в том, что файлы с расширением .js не обрабатываются PHP без каких-либо причудливых изменений конфигурации на вашем сервере. Находясь на виртуальном хостинге, вы не сможете этого сделать. Вместо этого вы можете переименовать файл с расширением .php. Это позволит PHP обрабатывать файл и позволить фактически введенным командам работать.
Вам нужно будет сделать еще одно изменение в файле. В самом верху, самом самом верхе, прежде всего вам понадобится следующая строка:
<?php header('Content-Type: text/javascript'); ?>
Эта команда сообщит браузеру, что возвращаемый файл - это Javascript. Это необходимо, потому что PHP обычно выводит HTML, а не Javascript. Некоторые браузеры не распознают скрипт, если он не идентифицирован как Javascript.
Теперь, когда мы убрали это с пути ...
Вместо этого я включил следующую строку кода в файл xml_http_request.php:
Это вряд ли сработает. Если он работает , вероятно, это случайно. Мы не имеем дело с нормальной библиотекой ajax здесь. Мы имеем дело с какой-то дурацкой вещью, созданной людьми из Google Планета Земля очень и очень давно.
За исключением одного или двух во всем этом монолитном фрагменте кода, нет запросов ajax, которые фактически обрабатывают результат . Это означает, что маловероятно, что тег script может быть обработан. Кроме того, один или два, которые do обрабатывают результат, фактически обрабатывают его как XML и возвращают документ. Маловероятно, что тег script также обрабатывается там.
Это объяснит, почему переменная никогда не будет надежно отображаться в Javascript.
Если вам нужно вернуть исполняемый код из ваших вызовов ajax и сделать это надежно, вы захотите использовать зрелую, хорошо протестированную библиотеку Javascript, такую как jQuery . Не волнуйтесь, вы можете смешивать и сочетать существующий код и jQuery, если вы действительно этого хотите. Есть вызов API только для загрузки дополнительных скриптов . Если вы просто хотели вернуть data , для этого и нужен JSON. Вы можете иметь код PHP, генерирующий JSON , и jQuery извлечь его . Это намного быстрее, проще и удобнее, чем ваш нынешний неудачный беспорядок.
Да, и получите Firebug или используйте инструменты разработчика Chrome / Safari, они избавят вас от боли в JavaScript.
Однако ...
Я собираюсь быть очень откровенным здесь. Это плохой код. Это ужасный код. Он плохо отформатирован, комментирование - шутка, и есть примерно одна точка семь миллиардов глобальных переменных. Код пугает меня. Это глубоко пугает меня. Я не решался бы дотронуться до него десятифутовым шестом.
Я бы не хотел, чтобы этот код оставался у моего злейшего врага , и вот вы здесь, пытаясь сделать с ним что-то странное.
От всей души призываю вас отточить свои навыки в кодовой базе, которая менее архаична и тупа, чем эта, прежде чем вернуться к этому проекту. Сохраните здравомыслие, уходите, пока можете!