Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从php调用javascript?_Javascript_Php - Fatal编程技术网

如何从php调用javascript?

如何从php调用javascript?,javascript,php,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.

从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>

功能错误(erortype){
var error=errorType;
var errorDiv=document.getElementById('errorArea').textContent;
如果(错误类型=“1a”){
errorDiv.textContent=“登录或密码不能为空”;
}
}
当我试着像这样调用这个脚本时:

if (empty($login) or empty($password)) {
    echo "<script>showError('1a')</script>" ;
}
if(空($login)或空($password)){
回声“淋浴器('1a')”;
}

它返回错误。我确实在
之前声明了脚本听着,事情是这样的。就PHP而言(或者实际上是一个web服务器),HTML页面并不比一个大的ol'字符串复杂。就这样

所有像PHP这样的语言所能做的奇妙工作——从数据库和Webserives中读取数据等等——最终目标都是完全相同的基本原则:生成一个HTML字符串

在web浏览器加载大HTML字符串之前,它不会变得更特殊。一旦浏览器加载了页面,所有其他神奇的事情就会发生——布局、框模型、DOM生成和许多其他事情,包括javascript执行

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

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

仅使用php

echo '<script type="text/javascript">'
   , 'jsfunction();'
   , '</script>';
echo''
,'jsfunction();'
, '';
从php模式转义到直接输出模式

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

jsFunction();
另一个简单的例子:

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

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

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

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

函数运行(){
警报(“你好世界”);
}

参考-

查看评论中的错误
注意:未定义变量:第37行登录***

这个问题与你的问题无关

使用
empty()


尝试改用
isset()

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>';
}

?>

功能错误(错误类型){
var errorDiv=document.getElementById('errorArea');
如果(errorType='1a'){
errorDiv.innerHTML=“登录名或密码不能为空”;
}
}

你看到了什么错误?@RocketHazmat注意:未定义变量:登录到第37行的***注意:未定义变量:密码在第39行的***中此登录已被使用(***是我正在执行的文件方式),如果我将echo更改为退出(“错误”)它工作得很好,可能是@nietonfir的复制品,它对我没有帮助,所以我想如果我问自己我可以得到一些帮助,没想到人们会对这件事很残忍……我的坏朋友,如果我像这里一样使用它:淋浴器('1a');注意:未定义变量:在C:***中登录:***在第22行保存_user.php注意:未定义变量:在C:***中密码:***在第24行此登录已被使用,因此这没有帮助,这就是为什么我再次询问此问题的原因,我正在使用它…
if(isset($_POST['login']){$login=$_POST['login'];if($login='=''{unset($login=''){unset($login)}}if(isset($_POST['password']){$password=$_POST['password'];if($password=='''']){unset($password);}}if(empty($login)或empty($password)){echo“淋浴器('1a');”}
尝试
$login=null
而不是
unset($login”)密码相同您不能取消设置某些内容,然后检查它包含的内容,它已消失,没有任何内容可供检查。如果未设置,我使用它销毁变量,以防止空数据进入数据库