Такой вопрос интересный назрел, как и можно ли вообще так сделать, чтобы передать в 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 или как элемент формы которая будет отправляться юзером.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть сервак (CentOS 7) на нём установлена виртуальная машина Битрикс, на которой работает коробка CRMПосле очередного супер мега пупер обновления...
Как правильно привернуть HBITMAP к make_unique вместе с deleter'ом, под deleter'ом подразумевается вызов DeleteObject()