Почему JavaScript не распознает PHP-код? - PullRequest
0 голосов
/ 03 апреля 2011

* edit: эта конкретная ситуация была создана, когда я пытался отладить другую проблему, вот более подробное описание моей проблемы: Почему javascript не может использовать переменную javascript, которую я объявил в php-файле?

Вот проблема:

У меня есть следующий php-код в файле javascript, но он не скомпилируется. Переменная simple используется внизу при передаче функции placem:

 <?php $simpleString = "i hope this works"; ?>


 var simple = "<?php echo $simpleString; ?>";

 window['mod0_2']= -.0015138;
 window['mod1_2']= -.3424094;
 window['mod2_2']= .40461099;

 window['lla0_2']= 43.6124872;
 window['lla1_2']= -116.20349;
 window['lla2_2']= 821.802867;

 window['publica2'] = new modd('milktruck','publica2',modScaler,'shadowrect3',1);

 placem('p2','pp2', simple, window['lla0_2'],window['lla1_2'],window['lla2_2']);

Ответы [ 3 ]

7 голосов
/ 03 апреля 2011

Вы используете PHP в файле .js?Если это так, Javascript работает на стороне клиента, где PHP работает на сервере.Если вы хотите выполнить PHP в файле Javascript, вы должны переименовать этот файл в .php и включить этот новый файл PHP в ваш HTML.

2 голосов
/ 03 апреля 2011

Типичным сценарием является размещение HTML, JavaScript и PHP (или какого-либо другого серверного языка / технологии программирования) на сервере. Затем вы получите доступ к веб-сайту с помощью веб-браузера с другого компьютера. Опять же, это типичный сценарий. Все эти компоненты могут существовать на одном компьютере.

В мире открытых ресурсов самый популярный веб-сервер называется Apache. Существует модуль для Apache (называемый mod_php), который интерпретирует код PHP, выполняет его и возвращает его вывод. (Модули существуют для других языков программирования, но я не буду вдаваться в подробности.)

Есть два основных подхода к тому, что вы хотели бы достичь, оба имеют свои плюсы и минусы.

1) Настройте mod_php для интерпретации файлов * .js, как если бы они были файлами PHP.

2) Создайте свои файлы JavaScript как файлы PHP. Это так же, как HTML подается из файлов PHP. Код PHP может быть смешан с HTML в том же файле. Тег <?php ... ?> указывает код PHP, который должен интерпретироваться mod_php. Все остальное просто отправляется в браузер как вывод.

Вот очень простой пример очень простой HTML-страницы с PHP, используемым для предоставления содержимого тега <title>:

<html>
<head>
<title>
<?php echo 'Hello world'; ?>
</title>
</head>
<body>
</body>
</html>

Это может появиться в файле PHP на сервере. В браузере полученный HTML-источник будет выглядеть следующим образом. (То есть, если вы сделали «просмотр источника» на странице. Сама страница выглядела бы пустой, а строка заголовка содержала бы слова: Hello world.)

<html>
<head>
<title>
Hello world
</title>
</head>
<body>
</body>
</html>

Это также можно сделать с помощью JavaScript вместо HTML. Важно помнить, что существует два вида этого файла. Во-первых, это то, что вы видите, глядя на необработанный файл. Другой - как этот файл выглядит после того, как PHP был выполнен и вывод возвращен в браузер. По сути, вы комбинируете выходные данные из PHP с HTML / JavaScript, чтобы сформировать окончательный вывод, который отправляется в браузер для отображения.

1 голос
/ 03 апреля 2011

milktruck.php

<?php 
 $simpleString = "i hope this works"; 

echo 'var simple = "'.$simpleString.'";

 window[\'mod0_2\']= -.0015138;
 window[\'mod1_2\']= -.3424094;
 window[\'mod2_2\']= .40461099;

 window[\'lla0_2\']= 43.6124872;
 window[\'lla1_2\']= -116.20349;
 window[\'lla2_2\']= 821.802867;

 window[\'publica2\'] = new modd(\'milktruck\',\'publica2\',modScaler,\'shadowrect3\',1);

 placem(\'p2\',\'pp2\', simple, window[\'lla0_2\'],window[\'lla1_2\'],window[\'lla2_2\']);';

?>


<script src="milktruck.php"></script>

Вы можете использовать htaccess и сохранить расширение .js, имея несколько modrewrites

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...