вызов функции jscript или php в переполнении стека

У меня проблемы с вызовом функции из php, у меня правильный код, но по какой-то причине функция не вызывается, кто-нибудь может увидеть причину, почему не из этого кода. Заранее спасибо.

Код кажется хорошим, и, насколько я знаю, он должен запускать вызов функции, однако я довольно новичок в php, поэтому я могу где-то что-то не так, но я не получаю ошибок от php или jscript, поэтому я не уверен, что я что-то упустил Вот. Идея кода состоит в том, чтобы изменить класс меню навигации.

<script>

function removeleftnav(){

document.getElementById('leftnav').classList.remove("leftnavin");
document.getElementById('leftnav').classList.add("leftnavout");

document.getElementById('html').style.width="window.innerwidth";
document.getElementById('mainwrap').classList.remove("mainwrap");

document.getElementById('mainwrap').classList.add("mainwrapnonav");
document.getElementById('centralcolumn').style.left = "0%";
document.getElementById('centralcolumn').style.width="100%";<?php $showingleftnav="no";?>;

console.log("$phpNO"+"<?php echo $showingleftnav; ?>");

document.getElementById('leftnavform1').value = ("<?php echo $showingleftnav; ?>");
document.getElementById('leftnavform2').value = ("<?php echo $showingleftnav; ?>");

document.getElementById('leftnavform3').value = ("<?php echo $showingleftnav; ?>");
document.getElementById('leftnavform4').value = ("<?php echo $showingleftnav; ?>");

}</script><script>

function retrieveleftnav(){document.getElementById('leftnav').classList.add("leftnavin");
document.getElementById('leftnav').classList.remove("leftnavout");

document.getElementById('html').style.width="window.innerwidth";

document.getElementById('mainwrap').classList.add("mainwrap");
document.getElementById('mainwrap').classList.remove("mainwrapnonav");

document.getElementById('centralcolumn').style.left = "0%";
document.getElementById('centralcolumn').style.width="83%";

<?php $showingleftnav="yes";?>;

console.log("$phpYES"+"<?php echo $showingleftnav; ?>");

document.getElementById('leftnavform1').value = ("<?php echo $showingleftnav; ?>");
document.getElementById('leftnavform2').value = ("<?php echo $showingleftnav; ?>");

document.getElementById('leftnavform3').value = ("<?php echo $showingleftnav; ?>");
document.getElementById('leftnavform4').value = ("<?php echo $showingleftnav; ?>");

}

</script><?php echo "should be changing here"; ?>

<?php if ($showingleftnav=="yes") { echo" <script>
function () { retrieveleftnav(); }; </script> "; };

if ($showingleftnav=="no") { echo" <script>
function() {removeleftnav(); }; </script> "; };

?>

0

Решение

Здесь нужно помнить пару вещей. Во-первых, PHP будет запускать этот файл сверху вниз, чтобы сгенерировать для вас HTML-страницу. В вашем коде $showingleftnav будут всегда равно «да» к тому времени, как вы дойдете до нижней части страницы. Это связано с тем, что код PHP будет выполняться на сервере до запуска JavaScript в браузере.

Похоже, что вы хотите вызвать определенную функцию JS на основе значения этой переменной PHP. Чтобы это работало, я бы предложил вам использовать что-то более динамичное, например ПОЛУЧИТЬ переменной и передать это значение через URL, а не жестко кодировать его значение в скрипте.

Тем не менее, я думаю, что реальная проблема заключается в том, что ваши вызовы JavaScript на самом деле не вызывают ваши методы JS.

Чтобы получить то, что вам нужно, я бы предложил что-то более похожее на конец файла (опять же, используя параметр GET, а не жестко заданный):

<?php
if ($_GET['showingleftnav'] == "yes") {
echo " retrieveleftnav();";
} else {
echo " removeleftnav();";
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]