在php中调用jscript函数或php函数

时间:2017-11-20 21:10:33

标签: php function echo jscript

我无法从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> "; };

?>

1 个答案:

答案 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();";
    }