2016-06-26 38 views
0

我已创建一个自定义警告对话框,但我不能将它调用PHP无法调用自定义警报的JavaScript函数在PHP

下面

是警告对话框的代码

<script> 
function CustomAlert(){ 
this.render = function(dialog){ 
    var winW = window.innerWidth; 
    var winH = window.innerHeight; 
    var dialogoverlay = document.getElementById('dialogoverlay'); 
    var dialogbox = document.getElementById('dialogbox'); 
    dialogoverlay.style.display = "block"; 
    dialogoverlay.style.height = winH+"px"; 
    dialogbox.style.left = (winW/2) - (550 * .5)+"px";//position of dialog box 
    dialogbox.style.top = "200px"; //height of the box 
    dialogbox.style.display = "block"; 
    document.getElementById('dialogboxhead').innerHTML = "Registraion Succesfull"; 
    document.getElementById('dialogboxbody').innerHTML = dialog; 
    document.getElementById('dialogboxfoot').innerHTML = '<button onclick="Alert.ok()">OK</button>'; 
} 
this.ok = function(){ 
    window.open("employer/personal","_self"); 
} 
}var Alert = new CustomAlert(); 
下面

是PHP代码

<?php 
echo "<script> CustomAlert(Alert.render('You look very pretty today.'));  </script>"; 
?> 
+0

您无法在PHP中调用JavaScript函数。在JavaScript运行时,PHP已经完成。为了运行它,你需要捕获一个用户事件([见addEventListener](http://stackoverflow.com/questions/6348494/addeventlistener-vs-onclick)),例如点击按钮,滚动到特定位置,点击输入字段等。 – gibberish

+0

您的PHP文件是否还回显或包含定义您的CustomAlert和Alert对象的脚本块,还是只回显单行?换句话说,如果在渲染后查看页面的源代码,它看起来像什么? – stratedge

回答

0

您提供作品的代码。我的猜测是,你在javascript代码之前执行php代码,这会导致未定义的Alert -var。在头标签中包含你的js可以解决这个问题。

<html> 
<head> 
    <script src="alert.js"></script> 
</head> 
<body> 
    ... 
    <div id="dialogoverlay"></div> 
    <div id="dialogbox"> 
     <div id="dialogboxhead">HEAD</div> 
     <div id="dialogboxbody">BODY</div> 
     <div id="dialogboxfoot">FOOT</div> 
    </div> 
    ... 
    <?php echo "<script>Alert.render('You look very pretty today.');</script>"; ?> 
</body> 
</html> 
+0

感谢菲利普,但我已经加入此更早,你可以检查整个代码的答案 –