Такой вопрос интересный назрел, как и можно ли вообще так сделать, чтобы передать в php функцию аргументом js переменную?...
/* файл index.php */
<div id="box"></div>
<?php
function getNum($num){
return $num*5;
}
?>
<script>
var a = 5;
var html = <?php echo getNum(/*как сюда вставить переменную a из js?*/); ?>;
$('#box').html(html);
</script>
Пытался в getNum просто закрыть php, вставить переменную js и вновь открыть php - но ошибку так бьет. Как правильно это сделать, и можно ли так?
PHP работает с сервером, а Javascript с клиентом, по-этому Вы не можете использовать одну и ту же переменную в скриптах этих двух языков без передачи этой переменной на сервер с клиента. Но, Вы можете указать переменную PHP в переменную JS:
<script type="text/javascript">
var foo = '<?= $foo ?>';
</script>
Чтобы отправить переменную Javascript в код PHP, Вам надо использовать ajax. Это будет выглядеть как-то так (самый простой пример):
var variableToSend = 'foo';
$.post('file.php', {variable: variableToSend});
На сервере Вы можете получить переменную в массиве $_POST:
$variable = $_POST['variable'];
Нельзя! PHP выполняется на сервере, а js на клиенте. Если результат выполнения js скрипта влияет только на html (то-есть на DOM) в этом нет необходимости, и логику изменений для элементов нужна продолжать писать на js, а если данные нужна обрабатывать на сервере(выполнить действия с базой, сессией, coockies) то-есть результат выполнения js влияет на дальнейшие состояние данных после перезагрузки страницы, то нужна передавать на сервер запросом через ajax или как элемент формы которая будет отправляться юзером.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости