Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выполнение PHP-кода в файлах JavaScript (https://javascript.ru/forum/misc/55953-vypolnenie-php-koda-v-fajjlakh-javascript.html)

Sergei-b84 22.05.2015 15:24

Выполнение PHP-кода в файлах JavaScript
 
Привет всем. У меня есть javascript файл, который генерирует форму регистрации. Полностью приводить не стал, привел только фрагмент. Сейчас мне необходимо, чтобы внутри это файла выполнялся пхп код. Как это реализовать? Можете на примере показать, как объединить два приведенных листинга. Необходимо, например, вывести ФИО не напрямую, а через пхп.


<?php echo 'ФИО';?>



function(){
return'<input type="text" id="overlay-signup-form-name" name="name" class="signup-name" placeholder="{{#esc_attr}}{{#tl}}ФИО{{/tl}}{{/esc_attr}}" autocomplete="off">\n'
})

Dark Surv 22.05.2015 15:38

Цитата:

Сообщение от Sergei-b84
чтобы внутри это файла выполнялся пхп код

PHP код на клиенте выполнить нельзя, так как PHP - СЕРВЕРНЫЙ язык,
можно выполнить PHP на сервере, потом принять ответ аяксом

Sergei-b84 22.05.2015 15:47

А если так? .htaccess
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js

<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>

Dark Surv 22.05.2015 15:58

Припустим есть PHP файл <?php echo 'Ваша фамилия'; ?> ($fio = нужное вам значение значение)
что-бы получить $fio на клиенте обращаемся аяксом на сервер

<script type="text/javascript">
var xhr = new XMLHttpRequest();
  xhr.open('GET', 'fio.php', true); // url = нужный вам адрес
  xhr.send(null);

  xhr.onreadystatechange = function(){
    if (xhr.readyState != 4) return;
    if (xhr.status != 200){
      alert(xhr.status + ': ' + xhr.statusText);
    }else{ // если нет ошибок возвращаем нужный текст
      document.querySelectorAll('#content')[0].innerHTML = '<input type="text" id="overlay-signup-form-name" name="name" class="signup-name" placeholder="' + xhr.responseText + '" autocomplete="off">\n';
	}
  }
</script>
<div id="content"></div>

Dark Surv 22.05.2015 16:01

Цитата:

Сообщение от Sergei-b84
А если так? .htaccess
Код:

AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>


этот вариант НЕПОДХОДИТ потому-что будут выполнятся ВСЕ JavaScript файлы как PHP файлы (если .htaccess в корне сайта)

Sergei-b84 22.05.2015 16:13

Спасибо. Все работает!!!

Sergei-b84 22.05.2015 16:15

Хотел спросить, а если нужно получить несколько переменных?

Dark Surv 22.05.2015 16:17

Цитата:

Сообщение от Sergei-b84
нужно получить несколько переменных?

можно например в JSON получить и роспарсить

Sergei-b84 22.05.2015 16:18

Спасибо.

kostyanet 22.05.2015 17:10

Цитата:

Сообщение от Sergei-b84
Необходимо, например, вывести ФИО не напрямую, а через пхп.

Когда скрипт оказался в браузере, ему уже никто не поможет кроме браузера. В принципе не важно на каком языке он написан, хоть на перфораторе, интерпретировать и компилировать коды может только браузер. Следовательно если каких-то данных браузеру не хватает, надо за ними идти на сервер и пехепе тут вообще не при чем.


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