模态对话框不起作用

时间:2013-09-16 05:39:18

标签: javascript php modal-dialog simplemodal

在下面的代码中,我想在模态窗口中显示数据。我的目标是在模态对话框中显示搜索到的数据。实际结果是它们显示在窗体上方而不是模态对话框中。我已经尝试了一些步骤但我不能能够产生预期的结果请帮助我。

<?php  
$search = (isset($_POST['search']) ? $_POST['search'] : null);

  mysql_connect("localhost", "root", "") OR die (mysql_error());
  mysql_select_db ("slseatapp") or die(mysql_error());

 $query = "SELECT * FROM coursemaster WHERE course_code LIKE '%$search%' or course_name like '%$search%'"; 

  $result = mysql_query($query) or die (mysql_error());

   $msg ;
     if($result) 
     {    
        while($row=mysql_fetch_row($result))   
       {      
            $msg=$msg ."ID=".$row[0].",COURSE CODE=".$row[1].",COURSE NAME=".$row[2];


       }   

        echo"<div id='overlay'>('$msg ');</div>";  
     }
   else
     { 
       echo "No result";  
     }
 ?>

<script>function overlay(){

el = document.getElementById('overlay');
el.style.visibility = (el.style.visibility == 'visible') ? 'hidden' : 'visible';

}function close() {
     document.getElementById('overlay').style.visibility = 'hidden';
}</script>
<style>#overlay div {
     width:300px;
     margin: 100px auto;
     background-color: #fff;
     border:1px solid #000;
     padding:15px;
     text-align:center;
}</style>"
<form action="look.php" method="post">  
 <center> SEARCH:<input type="text" name="search" placeholder="SEARCH"><br></center>  
 <center> <input type="submit" name="hhhh" class="btn-success btn"></center>
</form> 

1 个答案:

答案 0 :(得分:-1)

在我看来,问题是JS没有等待DOM做好准备。实现此目的的一种方法是将这部分代码放到php文件的底部。

<script>function overlay(){

el = document.getElementById('overlay');
el.style.visibility = (el.style.visibility == 'visible') ? 'hidden' : 'visible';

}function close() {
     document.getElementById('overlay').style.visibility = 'hidden';
}</script>

由于这部​​分没有来自PHP的任何内容,因此您不必将其作为字符串包装,也不必在PHP中回显,只需按原样放置。

PS。这里有一个友好的说明:代码看起来有点乱。一旦它起作用,最好通过关注点分离重构它,PHP-HTML,JS和CSS。