【问题标题】:calling jscript function or php function within php在php中调用javascript函数或php函数
【发布时间】:2017-11-20 21:10:32
【问题描述】:

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

?>

【问题讨论】:

    标签: php function echo jscript


    【解决方案1】:

    这里有几件事要记住。首先是PHP会从上到下运行这个文件来为你生成一个HTML页面。在您的代码中,当您到达页面底部时,$showingleftnav始终等于“是”。这是因为 PHP 代码将在 JavaScript 在浏览器中运行之前在服务器上执行。

    您似乎想根据该 PHP 变量的值调用特定的 JS 函数。为了让它工作,我建议你使用更动态的东西,比如 GET 变量,并通过 URL 传递该值,而不是在脚本中硬编码它的值。

    也就是说,我认为真正的问题是您的 JavaScript 调用实际上并没有调用您的 JS 方法。

    为了得到你必须工作的东西,我建议在文件末尾写一些类似的东西(同样,使用 GET 参数而不是硬编码的参数):

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

    【讨论】:

      猜你喜欢
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 2012-06-22
      相关资源
      最近更新 更多