1

「if」条件が真の場合にポップアップを開きたいのですが、それ以外の場合は正常に開きます。

しかし、私が使用したコードは、条件が true か false かに関係なくポップアップを開きます。

だから、みんなを助けて、あなたの見解を教えてください

私が使用するスクリプト。

<script>
$(document).ready(function() {  

        var id = '#dialog';

        //Get the screen height and width
        var maskHeight = $(document).height();
        var maskWidth = $(window).width();

        //Set heigth and width to mask to fill up the whole screen
        $('#mask').css({'width':maskWidth,'height':maskHeight});

        //transition effect     
        $('#mask').fadeIn(1000);    
        $('#mask').fadeTo("slow",0.8);  

        //Get the window height and width
        var winH = $(window).height();
        var winW = $(window).width();

        //Set the popup window to center
        $(id).css('top',  winH/2-$(id).height()/2);
        $(id).css('left', winW/2-$(id).width()/2);

        //transition effect
        $(id).fadeIn(2000);     

    //if close button is clicked
    $('.window .close').click(function (e) {
        //Cancel the link behavior
        e.preventDefault();

        $('#mask').hide();
        $('.window').hide();
    });     

    //if mask is clicked
    $('#mask').click(function () {
        $(this).hide();
        $('.window').hide();
    });     

});
</script>

cssはここにあります。

<style>
#mask {
  position:absolute;
  left:0;
  top:0;
  z-index:9000;
  background-color:#000;
  display:none;
}

#boxes .window {
  position:absolute;
  left:0;
  top:0;
  width:440px;
  display:none;
  z-index:9999;
  padding:20px;
  padding-top:0px;
}

#boxes #dialog {
  width:975px; 
  padding-top:0px;
  background-color:#ffffff;
   background-image: url(../Images/form_bg.png);
background-repeat: no-repeat;
}

</style>

そして条件付きのdiv。

<?php
        $check_crm=mysql_num_rows(mysql_query("select * from crm where party_id='$_GET[party_id]'"));
        if($check_crm>0)
        {
            ?>
        <div id="boxes">
        <div id="dialog" class="window">
        <!-- content-->
        </div>
        </div>
        <?php
        }
        ?>
4

2 に答える 2

0

PHP doc によると、mysql_query()は、結果自体ではなく、結果への参照を返します。

mysql_query( )によって返される結果参照に対して、mysql_num_rows()またはmysql_fetch_assoc( ) などの追加のメソッドを使用する必要があります。

例えば:

$check_crm = mysql_query("select * from crm where party_id='".mysql_real_escape_string($_GET['party_id'])."' limit 1");
if (mysql_num_rows($check_crm) > 0)

ところで:

  • 潜在的なSQL インジェクションに注意してください。ユーザー入力で少なくともmysql_real_escape_string()を使用するか、変数をクエリにバインドしてください。
  • 古いmysql_* PHP 関数の使用はお勧めできません。PDO ライブラリの使用が推奨されます。Propel や Doctine などの ORM もチェックしてください。
  • 目的がparty_idを指定してテーブルcrmに少なくとも 1 つの一致が見つかったLIMIT 1かどうかのみを確認することである場合は、無駄な処理を避けるためにクエリに追加できます。
于 2012-09-11T08:37:19.097 に答える
0

上記のコードは、$(document).ready 関数に含まれているため、ドキュメントが読み込まれるとポップアップが開きます。それを1つの関数に含めて、条件が真のときに呼び出すようにしてください

于 2012-09-11T08:38:37.310 に答える