nastya97core
@nastya97core
Начинающий программист

Как внутри шаблона передать из js в php?

Здравствуйте. в php через include подключаю файл home.tpl. Внутри этого файла мне нужно как-то сделать вот такое.
<script>
if (screen.width>500) {
	<?php $type = 2; ?>
} else {
	<?php $type = 1; ?>
}
</script>

Я думала, что оно будет работать, но увы - нет...

...
Планшеты имеют разрешение экрана, которое в разы превышает мобильное, однако на них всё равно открываются мобильные версии. Версия на смартфоне и на планшете может кардинально отличаться. На мобильнике у меня полноэкранный слайдер, а на планшете (даже в вертикальном положении) слайдер не нужен, так как всё помещается. Нет возможности разобрать слайдер. Вот такая вот вёрстка.
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Простым языком - дело в том, что:

- сначала PHP код (все что между <?php и ?>) будет выполнен на сервере, и в вашем случае там будет пусто, потому что переменная $type будет существовать только на сервере в момент выполнения этого фрагмента кода, этот код в этом месте ничего не выводит (не делает echo, print, printf и тд).

- далее будет сгенерирована HTML страничка, которая содержит JavaScript код (все что между <script> и </script>), но еще раз - PHP-кода там уже не будет (он выполнился), вместо него будет результат этого выполнения (в вашем случае - пусто, см. выше)

- JavaScript код выполняется браузером, после того как он сгенерирован на сервере и скачан оттуда этим самым браузером. И в браузере ваш скрипт, с учетом что PHP там ничего не напечатал, будет выглядеть вот так:

<script>
if (screen.width>500) {
} else {
}
</script>

Таким путем как вы пытаетесь вы можете передать данные из PHP в JavaScript, например <?php echo $type; ?> выведет в JS значение переменной $type. Обратно из JS в PHP вы так данные не передадите, это как путешествие во времени в 1994й год.

Для передачи данных на сервер используется ajax.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
03 мая 2024, в 16:26
3000 руб./за проект
03 мая 2024, в 16:09
1200 руб./за проект
03 мая 2024, в 16:06
3000 руб./за проект