繁体   English   中英

问题从PHP调用JavaScript函数

[英]issue calling JavaScript function from PHP

基本上我试图从我的PHP调用一个javascript函数,我正在使用我知道在其他情况下工作的代码但是这里不是,我不知道为什么?

这可能是愚蠢的,因为我一直盯着这个屏幕很长一段时间:)

这是我调用函数的地方:

if(isset($test_details['done_test'])){
    echo "getting here";
    echo "<SCRIPT LANGUAGE='javascript'>user_error();</SCRIPT>";
}

我成功地“打印到这里”但是它没有调用JS函数。

javascript函数:

   function user_error(){
   document.write("working");
        //alert("User has already taken this test. Your are being redirected...");
        //setTimeout("window.location='home_student.php'",3000);
   }

评论它我最终希望它做什么。

任何人都可以请一些亮点。

非常感谢,

@Crimson - 这是我在你的建议后尝试的.​​.....仍然没有运气。

javascript现在:

$(document).ready(function () {
     var done = "<?= $test_details['done_test'] ?>";
     if(typeof done != 'undefined'){
          $('WORKING').appendTo('#bodyArea'); // just to test
     }
});

通过用PHP回显<script>...</script> ,你不会让浏览器运行JS函数!

PHP仅输出您要发送到浏览器的HTML文件。 然后,浏览器会解析此HTML,并在向用户显示页面之前执行大量操作。

接下来,用户与显示的页面(或其他一些与浏览器相关的事件,如'onload')进行交互,并调用附加的JS。

所以,如果你想在某个时间运行一些JS,比如在浏览器加载页面后立即说,你需要在HTML文件中创建JS,这样就可以在页面上调用JS函数了。像这样加载事件:

<body onload="/*do something here*/"> ... </body>

最好使用JQuery或其他一些JS frmework来完成这样的事情。

你确定功能已经定义了吗? 也许你在进行函数调用后声明了你的函数。

另外,虽然这里并不重要,但有一个javascript脚本标记的正确方法是。

<script type="text/javascript"></script>

即不是language="javascript"

用这个替换你调用JS函数的行:

echo '<script type="text/javascript">window.onload = user_error </script>' ; 

它应该解决问题。 因为在您调用user_error()时,该功能可能尚未被浏览器初始化。 因此,您将收到错误,因为无法找到该功能。

如果函数放在外部.js文件中,则很可能会出现此错误,因为外部文件通常需要一段时间才能加载。 如果函数减速在同一个文件中但在你调用它之后,同样的事情发生了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM