4eloBek
@4eloBek
ученик

Как изменить значение переменной в php через js и вызвать ее в js?

Уверен, что такое провернуть можно и на чистом php, но его (php) я буду использовать только для сохранения данных на сервере, а всю остальную логическую часть будет выполнять js.

Код file.php:
<?php
$background = '#ffffff';
?>

Код index.html:
<!DOCTYPE HTML>
<html>
<head>
    <meta charset = "utf-8" >
	<script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
    <title>...</title>
</head>
<body>
<?php
include "file.php";
?>

<script type="text/javascript">
if (location.search.substring(1) == 'color') {
	var color = prompt('Введите цвет в формате HEX:', '');
	color = color.replace(/#([0-9A-F]){6}/gi, '$&');
	if (!color || color == '') { color = '#ffffff'; }
	$.get( 'file.php', { background: color});
}

var a = '<?php echo $background;?>';
$('body').css('background', a);
</script>
</body>
</html>


Начальное значение переменной из php оно берет, а вот изменения через promt не выводит((
Помогите разобраться)))
  • Вопрос задан
  • 728 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вы же не сохраняете никуда это значение.
Код file.php:
<?php
if (empty($_GET['background'])) { // если нет get-параметра с цветом
    $background = '#ffffff';
} else { // если есть - используем его
    $background = $_GET['background']; 
    // по хорошему, здесь нужно бы проверять на JS инъекции
    // или как-то экранировать
}

/*
а теперь нужно куда-то сохранить это измененный цвет. в сессию, в базу данных, в файл и т.д.
*/
?>


UPD: Кстати, если вам это нужно только для некритичной пользовательской настроки, типа цвета фона, то можно сохранить прямо в браузере, без всякого php. localStorage
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@entermix
Как то так:

Код file.php:
<div id="background">#ffffff</div>

Код index.html:
<!DOCTYPE HTML>
<html>
<head>
    <meta charset = "utf-8" >
  <script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
    <title>...</title>
</head>
<body>
<?php
include "file.php";
?>

<script type="text/javascript">
if (location.search.substring(1) == 'color') {
  var color = prompt('Введите цвет в формате HEX:', '');
  color = color.replace(/#([0-9A-F]){6}/gi, '#$1');
  if (!color || color == '') { color = '#ffffff'; }
  $.get( 'file.php', { background: color});
}

var a = $('#background').html();
$('body').css('background', a);
</script>
</body>
</html>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы