Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не срабатывает php в отдельном файле js (https://javascript.ru/forum/events/81578-ne-srabatyvaet-php-v-otdelnom-fajjle-js.html)

VSTTK 18.12.2020 12:48

Не срабатывает php в отдельном файле js
 
Здравствуйте!

Возникла проблема: на html странице есть js скрипт, который выполняется по onclick. Результат расчетов выводится в div с id=stand.
Эта часть кода выглядит так:

...document.getElementById('stand').innerHTML = '<img src="img/HOP.jpg">' + '<?php include("PHPcode/data1_functions.php");?> <div class="ramka"><div class="text-block-full"><div id="element3" style="display:block"><p class="data-p"><? echo $proba7601; ?></p></div></div></div>';...


Код кроме вывода картинки вызывает php и подгружаются данные из файла "data1".

Если js скрипт прописан в коде html (<script>...</script>), то всё работает и загружается.
Как только выношу скрипт в отдельный файл .js , то часть кода с выводом данных <? echo $proba7601; ?> не загружается. выполняется.

В чём может быть причина?

laimas 18.12.2020 12:51

Цитата:

Сообщение от VSTTK
Как только выношу скрипт в отдельный файл .js , то часть кода с выводом данных <? echo $proba7601; ?> не загружается.

Не "не загружается", а не выполняется, ибо PHP не обрабатывает этот тип файла. Можно конечно добавить его в исполняемые, но лучше этого не делать.

VSTTK 18.12.2020 12:55

Пусть будет "не выполняется". Но почему?

laimas 18.12.2020 13:04

Цитата:

Сообщение от VSTTK
Но почему?

Я что на английском ответит? Вроде бы на русском - потому, что js-файлы не являются исполняемыми интерпретатором РНР.

VSTTK 18.12.2020 14:26

То есть php обрабатывает html и скрипты в нем, а вынесенный отдельно файл .js не обрабатывает?
Что нужно сделать, чтобы исполнялся php ?

laimas 18.12.2020 14:37

Цитата:

Сообщение от VSTTK
Почему в теле html он выполняет скрипт php

РНР не выполняет "в теле", РНР выполняется только в файлах, которые в конфигурации указаны как исполняемые. Если ваш файл, это .php, который выводит этот код, где '<img src="img/HOP.jpg">' ... это не html, а просто строка, то в нем и будут выполнятся php-код. В файле .html РНР будет выполнятся только в том случае, если это расширение также добавлено в исполняемые. РНР выполняется на сервере, и на нем нет html, js....

VSTTK 18.12.2020 15:04

Можно ли только при помощи js выполнить вставку данных из ячеек excel?

laimas 18.12.2020 15:07

Цитата:

Сообщение от VSTTK
Можно ли только при помощи js выполнить вставку данных из ячеек excel?

На клиенте много что можно сделать, а вставка данных из ячеек excel, это вопрос настолько резиновый, что можно его трактовать как угодно.

VSTTK 21.12.2020 11:12

Цитата:

Сообщение от laimas (Сообщение 531882)
РНР не выполняет "в теле", РНР выполняется только в файлах, которые в конфигурации указаны как исполняемые. Если ваш файл, это .php, который выводит этот код, где '<img src="img/HOP.jpg">' ... это не html, а просто строка, то в нем и будут выполнятся php-код. В файле .html РНР будет выполнятся только в том случае, если это расширение также добавлено в исполняемые. РНР выполняется на сервере, и на нем нет html, js....

Спасибо за разъяснения!

Ситуация получается следующая: пользователь на странице html вводит параметры, нажимает кнопку и JS выбирает и показывает соответствующую этим параметрам картинку. Также есть файл data1.xlsx с ценами. Изначально планировалось, что PHP вытянет массив цен из data1.xlsx и подставит соответствующую картинке цену в html. Но файл js не исполняется PHP, поэтому цена не подставляется. Можно ли средствами только JS извлечь цены из data1.xlsx и подставить в html? Или сохранить массив данных от PHP в какой-либо файл, из которого JS извлечет и подставит цену?

laimas 21.12.2020 11:20

Варианты:

а) Экспортировать из Excel таблицу в формате CSV
б) Создать xml-карту, сопоставить ее с таблицей Excel экспортируя ее затем в формате XML (На сайте MS в справке рассказывается как это делается для разных версий офиса)

И CSV, и XML формат клиент без проблем "переваривает", вставляйте на здоровье. Можно на сервере любой из этих форматов преобразовать и в JSON для клиента.

То есть в этом плане проблем нет. И не обязательно это прятать в js-файл, да еще в него и РНР код. Эти данные можно запросить у сервера и асинхронно, сделав запрос к php-сценарию.


Часовой пояс GMT +3, время: 06:41.