Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка при вставке php кода в js код (https://javascript.ru/forum/misc/31883-oshibka-pri-vstavke-php-koda-v-js-kod.html)

zevilz 24.09.2012 17:36

Ошибка при вставке php кода в js код
 
Почему при попытке вставки php кода в js код
var link = <?php echo $_SERVER["SERVER_NAME"];?>;

вылазит ошибка "Uncaught SyntaxError: Unexpected token <"?

trikadin 25.09.2012 05:22

zevilz, наверное потому, что js и php - это всё-таки разные языки программирования, и нельзя один просто так взять и вставить в другой.

lord2kim 25.09.2012 10:17

zevilz,
<?
$var=$_SERVER["SERVER_NAME"];
?>
<script>
var link = "<? echo $var ?>";
</script>

DjDiablo 25.09.2012 11:14

если речь идёт о передачи значений в js плагин, то предпочтительно

<div widget="hello" server="<?=$_SERVER["SERVER_NAME"]; ?>" > 

</div>

и код скрипта который в отдельном файле обязательно
(function($)
{
        $.fn.hello = function(options){
             this.each({
                    //вуаля наша переменная доступна
                    alert(this.attr('server'));
             })
        }
        $(function(){ 
              $("div[widget='hello']").hello();   
        })
        
})(jQuery)


ПРОФИТ.
1) в шаблоне нет не единой строчки js кода (php/js - не смешан)
2) можно создать любое количество плагинов
3) плагин создаётсям простым написанием <div widget="hello" server="<?=$_SERVER["SERVER_NAME"]; ?>" > </div> в HTML

А вот смешивание js и PHP это товарищи уже быдлокод.

trikadin 25.09.2012 13:21

Цитата:

Сообщение от DjDiablo
если речь идёт о передачи значений в js плагин, то предпочтительно

Честно говоря, мне не очень нравится такой подход (ну, это моё имхо). На мой взгляд, лучше делать так:

<script>
var server= "<?=$_SERVER["SERVER_NAME"]; ?>";
</script>
<script src="external.js"><script>


И уже в этом external.js обрабатывать эту переменную. Хорошо тем, что не захламляются атрибуты у элементов.

zevilz 25.09.2012 15:47

Спасибо всем, попробую

zevilz 10.10.2012 19:21

При вставке кода переменных php js распознает их как просто текст


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