我从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
标记之前声明了脚本。你能帮我找到或理解我的错误吗?有没有其他方法可以使用所需的参数来调用特定的函数?
答案 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>
答案 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>';
}
?>