Как вставить код PHP в JS

Статус
В этой теме нельзя размещать новые ответы.

Denzy

Добрый самаритянин
Регистрация
29 Июл 2016
Сообщения
117
Реакции
107
Но вариант вполне рабочий, хотя статику я бы не советовал отдавать с помощью PHP.
Но если очень надо, то можно.
Например, в форме сделать инпут, с value
PHP:
<?php echo isset($_POST['referer'])?$_POST['referer']:(($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'Неизвестно'); ?>
 

grebovich

Гуру форума
Регистрация
19 Мар 2012
Сообщения
353
Реакции
68
Например, в форме сделать инпут, с value
PHP:
<?php echo isset($_POST['referer'])?$_POST['referer']:(($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'Неизвестно'); ?>
Так я этой цели и добиваюсь но, сам инпут создается этим JS файлом...
 

grebovich

Гуру форума
Регистрация
19 Мар 2012
Сообщения
353
Реакции
68
Ну почему же. Как вариант, если у тебя Nginx, ты можешь создать что-то вроде:
Код:
location = /smartbasket/js/smartbasket.min.js {
  fastcgi_pass unix:/run/php-fpm/example.com.sock;
  include fastcgi.conf;
}
Т.о. ты указываешь веб-серверу, что данный файл будет обработан с помощью PHP.
И уже средствами своего движка выдаёшь содержимое этого файла с необходимыми вставками PHP кода.
Но опять же, я не знаю, что у тебя за веб-сервер и что за сайт.
На сколько легко там реализовать данный вариант и т.д.
Но вариант вполне рабочий, хотя статику я бы не советовал отдавать с помощью PHP.
Но если очень надо, то можно.

Ну это тоже не вариант, сервер апач, ну и я больше сломаю чем что то сделаю если туда полезу...:)
 

Sorcus

Sorcus. A New Beginning.
Регистрация
10 Июл 2011
Сообщения
513
Реакции
884
Так я этой цели и добиваюсь но, сам инпут создается этим JS файлом...
Кстати да, что-то я об этом не подумал.
Как и сказал @Denzy, ты можешь в страницу встроить кусок кода.
Что-то типа:
HTML:
<script>
  const foo = "<?= $var; ?>"
</script>
И в своём коде JS просто вызвать переменную `value: foo`.
Только переменную ты должен объявить до подключения JS файла.
Иначе будет ошибка.
 

grebovich

Гуру форума
Регистрация
19 Мар 2012
Сообщения
353
Реакции
68
Кстати да, что-то я об этом не подумал.
Как и сказал @Denzy, ты можешь в страницу встроить кусок кода.
Что-то типа:
HTML:
<script>
  const foo = "<?= $var; ?>"
</script>
И в своём коде JS просто вызвать переменную `value: foo`.
Только переменную ты должен объявить до подключения JS файла.
Иначе будет ошибка.
Хм, счас попробую...
 

grebovich

Гуру форума
Регистрация
19 Мар 2012
Сообщения
353
Реакции
68
Кстати да, что-то я об этом не подумал.
Как и сказал @Denzy, ты можешь в страницу встроить кусок кода.
Что-то типа:
HTML:
<script>
  const foo = "<?= $var; ?>"
</script>
И в своём коде JS просто вызвать переменную `value: foo`.
Только переменную ты должен объявить до подключения JS файла.
Иначе будет ошибка.
В страницу вставил, код срабатывает Для просмотра ссылки Войди или Зарегистрируйся
А вот в форме все равно не работает, не принимает значение Для просмотра ссылки Войди или Зарегистрируйся ,
может я не верно его вызываю?
Код:
// Старт скритых полей
            let n5 = t("<div>").attr({
                    class: "smart-basket__input-wrapper"
                }),
                i5 = t("<input>").attr({
                    class: "smart-basket__user-input",
                    type: "text",
                    value: "foo",
                    name: "userReferer",
                    required: !0
                });
            n.append(i5);
           
// Стоп скритых полей
 

Sorcus

Sorcus. A New Beginning.
Регистрация
10 Июл 2011
Сообщения
513
Реакции
884
В страницу вставил, код срабатывает Для просмотра ссылки Войди или Зарегистрируйся
А вот в форме все равно не работает, не принимает значение Для просмотра ссылки Войди или Зарегистрируйся ,
может я не верно его вызываю?
Код:
// Старт скритых полей
            let n5 = t("<div>").attr({
                    class: "smart-basket__input-wrapper"
                }),
                i5 = t("<input>").attr({
                    class: "smart-basket__user-input",
                    type: "text",
                    value: "foo",
                    name: "userReferer",
                    required: !0
                });
            n.append(i5);
          
// Стоп скритых полей
Ага, неправильно. `value: "foo"` - здесь `"foo"` строка, а не вызов переменной. Кавычки лишние.

И кстати, у тебя в консоли ругается на одинаковые id-шники.
Это плохо. Т.к. id на странице это уникальный элемент.
Либо меняй id на class, либо используй id с разными значениями.
 

grebovich

Гуру форума
Регистрация
19 Мар 2012
Сообщения
353
Реакции
68
Ага, неправильно. `value: "foo"` - здесь `"foo"` строка, а не вызов переменной. Кавычки лишние.

И кстати, у тебя в консоли ругается на одинаковые id-шники.
Это плохо. Т.к. id на странице это уникальный элемент.
Либо меняй id на class, либо используй id с разными значениями.
Да это у меня старые формы пооставались еще не удалил, там id одинаковы...

А вот с вызовом все равно не могу разобратся, и с ковычками и без ковычек и двойные и одинарные, то ошибку выдает то тупо не срабатыват вызов, у меня уже крыша едет с этой формой....
 

Sorcus

Sorcus. A New Beginning.
Регистрация
10 Июл 2011
Сообщения
513
Реакции
884
Да это у меня старые формы пооставались еще не удалил, там id одинаковы...

А вот с вызовом все равно не могу разобратся, и с ковычками и без ковычек и двойные и одинарные, то ошибку выдает то тупо не срабатыват вызов, у меня уже крыша едет с этой формой....
HTML:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Example</title>
  </head>
  <body>
    <script>
      const value = 10
    </script>

    <p>Welcome</p>

    <script>
      const price = {
        apple: value
      }
      alert(`Цена на яблоко: ${price.apple}р.`)
    </script>
  </body>
</html>
Вот тебе пример рабочего кода. Может хоть так разберёшься.
 

garphild

Постоялец
Регистрация
19 Май 2009
Сообщения
60
Реакции
31
В страницу вставил, код срабатывает Для просмотра ссылки Войди или Зарегистрируйся
А вот в форме все равно не работает, не принимает значение Для просмотра ссылки Войди или Зарегистрируйся ,
может я не верно его вызываю?
Код:
// Старт скритых полей
            let n5 = t("<div>").attr({
                    class: "smart-basket__input-wrapper"
                }),
                i5 = t("<input>").attr({
                    class: "smart-basket__user-input",
                    type: "text",
                    value: "foo",
                    name: "userReferer",
                    required: !0
                });
            n.append(i5);
          
// Стоп скритых полей

value: foo

В начале определяется константа. там где код на странице.
Код:
<script>
  const foo = "<?= $var; ?>"
</script>

А затем эту константу нужно передать в поле value.
С любыми кавычками это строка.
Без кавычек это переменная или константа (смотря как определено ранее). И вместо нее javascript уже подставляет значение.
И обратите внимание есть ли у переменной/константы foo значение. Если нет, то вот:
Код:
<script>
  const foo = "<?php echo isset($_POST['referer'])?$_POST['referer']:(($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'Неизвестно'); ?>"
</script>
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху