Мне нужно иметь некоторый php-код внутри javascript
<script ...> <?php echo " ... "; ?> </script>
но это не работает. как можно реализовать php внутри javascript, который находится в собственном файле javascript.php?
Это не делает то, что вы, вероятно, думаете, что это так. Он будет работать, но PHP запускается один раз, когда страница загружается не каждый раз, когда вызывается функция JavaScript.
Просто для разъяснения, вот что произойдет
index.php
<script type="text/javascript"> <?php echo "alert('hello!');"; ?> </script>
вывод html в браузере
<script type="text/javascript"> alert('hello!'); </script>
Если это то, что вы хотите сделать, вы можете вывести весь понравившийся javascript. То, что вы не можете сделать, это выполнить PHP-код в браузере пользователя.
вы можете использовать php для динамического создания кода javascript, но вы не можете выполнить клиентскую часть php. Если вам нужно выполнить php, вам нужно будет отправить обратно или использовать AJAX
Кажется, что есть немного неправильного понимания вопроса … Вот что вы хотите сделать для генерации JS из PHP на сервере:
файл javascript.js.php
<?php header('Content-Type: text/javascript'); ?> // javascript code here function PrintTime() { alert("The time is " + <?php echo json_encode(time()); ?>); }
Теперь включите его на HTML-странице, используя обычные теги сценария:
<script type="text/javascript" src="/url/to/javascript.js.php"></script>
Сервер будет обрабатывать файл PHP и возвращать из него javascript.
Вы не можете запустить PHP внутри файла javascript. Прежде всего потому, что PHP работает на стороне сервера и обрабатывается до того, как клиент отправит любую фактическую информацию http. JavaScript обрабатывается браузером на стороне клиента и отправляется как текст.
Похоже, вы хотите передать какую-то динамическую информацию в JavaScript. Вы можете сделать это, передав такую переменную:
<?php $variable="its me"; ?> <script> alert('<?php print($variable)?>') </script>
Вывод, переданный клиенту:
<script> alert('its me') </script>
Что вы пытаетесь выполнить, и, может быть, мы сможем помочь вам придумать лучшее решение?