如何从php调用javascript?

时间:2014-03-20 23:33:44

标签: javascript php

我从php文档调用javascript时遇到问题。这是我的javascript:

<script type="text/javascript">

function showError(erortype){

    var error = errorType;
    var errorDiv = document.getElementById('errorArea').textContent;

    if(errorType=="1a"){
        errorDiv.textContent="LOGIN OR PASSWORD COULDN'T BE EMPTY";
    }


}
</script>

当我尝试像这里一样调用这个脚本时:

if (empty($login) or empty($password)) {
    echo "<script>showError('1a')</script>" ;
}

它返回错误。我确实在<?php标记之前声明了脚本。你能帮我找到或理解我的错误吗?有没有其他方法可以使用所需的参数来调用特定的函数?

3 个答案:

答案 0 :(得分:1)

看,这是交易。就PHP而言(或者实际上是一般的Web服务器),HTML页面并不比一个大的字符串复杂。就是这样。

您可以使用PHP等语言进行所有精彩的工作 - 从数据库和Webserivces读取所有这些 - 最终目标是完全相同的基本原则:生成一串HTML。

在由Web浏览器加载之前,您的大HTML字符串不会变得更加特殊。一旦浏览器加载了页面,那么所有其他魔法就会发生 - 布局,盒子模型,DOM生成以及许多其他事情,包括javascript执行。

一旦你掌握了这个概念,你就会意识到你没有“从php调用javascript”,你只是“在你的输出中包含一个javascript函数调用”。

有很多方法可以做到这一点,但这里有几个。

仅使用php

echo '<script type="text/javascript">'
   , 'jsfunction();'
   , '</script>';

从php模式转到直接输出模式

<?php
// some php stuff
?>
<script type="text/javascript">
    jsFunction();
</script>

另一个简单的例子:

<html>
    <head>
       <title></title>

       <script type="text/javascript">
            function run(){
                alert("hello world");
            }

           <?php
               echo "run();";
           ?>
       </script>

    </head>
    <body>
    </body>
</html>

参考 - How to call a JavaScript function from PHP?

答案 1 :(得分:0)

查看评论中的错误     Notice: Undefined variable: login in *** on line 37

问题与你的问题没什么关系。

您正在检查未定义的变量是否为空empty()

尝试使用isset()代替

答案 2 :(得分:0)

errorDiv 不正确。 errorType 区分大小写。

工作示例:

<div id="errorArea"></div>

<script type="text/javascript">

function showError ( errorType ) {
    var errorDiv = document.getElementById('errorArea');

    if (errorType == '1a') {
        errorDiv.innerHTML = "LOGIN OR PASSWORD COULDN'T BE EMPTY";
    }
}
</script>

<?php

if ( empty($login) || empty($password) ) {
    echo '<script>showError("1a");</script>';
}

?>