0

この以下のコードでは、モーダルウィンドウにデータを表示したい.私の目的は、検索されたデータをモーダルダイアログに表示することです.実際の結果は、フォームの上に表示されています.いくつかの手順を試しましたが、期待される結果を生成できませんpls助けて。

<?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"<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>";
echo"<style>#overlay div {
     width:300px;
     margin: 100px auto;
     background-color: #fff;
     border:1px solid #000;
     padding:15px;
     text-align:center;
}</style>";
        echo"<div id='overlay'>('$msg ');</div>";  
     }
   else
     { 
       echo "No result";  
     }
 ?>

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

1 に答える 1

0

いくつかのヒント: 非推奨の mysql 関数の代わりに PDO を使用してみてください。php コードと html/js を混ぜないでください。css と html を混ぜないでください。ブラウザの互換性を高めるには、ネイティブ Javascript の代わりに jQuery を使用してください。 'center'-Tag のような非推奨の HTML タグを使用してください。独自のモーダル ダイアログを構築しようとしないでください。jQuery-UI を使用することをお勧めします。最後にコードをフォーマットします。問題に対して、コードをデバッグし、結果が存在するかどうかを確認してください。コンソール出力で js-errors を確認することもできます。

私にとっては、この要素がブラウザによってレンダリングされる前に、JavaScript コードがオーバーレイ要素を取得しようとしているように見えます。js コードを html ドキュメントの最後に配置します。そして、どこでオーバーレイ機能を呼び出しますか?

もう 1 つのヒント: $search が null でない場合にのみ検索クエリを実行し、SQL インジェクションを防ぐために、たとえば mysql_real_escape_string または PDO で準備されたステートメントを使用して、クエリ内のユーザー変数をエスケープします。

于 2013-09-15T20:20:22.673 に答える