我无法从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 :(得分:0)
这里有几点要记住。首先,PHP将从上到下运行此文件,为您生成一个HTML页面。在您的代码中,$showingleftnav
总是等于&#34;是&#34;当你到达页面底部时。这是因为在JavaScript在浏览器中运行之前,PHP代码将在服务器上执行。
看起来你想根据PHP变量的值调用特定的JS函数。为了实现这一点,我建议你使用更像GET变量的动态内容,并通过URL传递该值,而不是在脚本中对其值进行硬编码。
那就是说,我认为真正的问题是你的JavaScript调用实际上并没有调用你的JS方法。
为了得到你必须工作的东西,我会建议更像文件末尾的东西(再次,使用GET参数而不是硬编码参数):
<?php
if ($_GET['showingleftnav'] == "yes") {
echo " retrieveleftnav();";
} else {
echo " removeleftnav();";
}