0

こんにちは、ユーザーがログインして情報がチェックされると、ユーザーがTOSを読んでいない場合、ダイアログボックスが開くインターフェースがあります。私の問題は、開かないことです。

コード:

function run(){
    var url = '/pcg/termsofservice/termsofservice.php';
    showUrlInDialog(url);
}
    function showUrlInDialog(url){
      var tag = $("#dialog-container");
      $.ajax({
        url: url,
        success: function(data) {
          tag.html(data).dialog
          ({
              width: '100%',
                modal: true
          }).dialog('open');
        }
      });
    }
    // if user accepts
    function agree(){
        alert("Handler for .click() called.");
    }
    /******is user declines ******/
    function decline(){

     $("#dialog-container").dialog( 'close' );
     /*****run ajax to kill session of current user and return to login page ******/
      $.ajax({ url: '/PCG/termsofservice/declinedkill.php',
             data: {},
             type: 'post',
             success: function(output) {
                 window.location.replace("/PCG/mainlogin.php");
                      }
    });
    }

PHP は、TOS を読んでいないかどうかを確認します。

//GET TOS setting if any in place, if so display TOS
$TOS = $_GET['TOS'];

if ($TOS == 0){
        echo '<script type="text/javascript">'
   , 'run();'
   , '</script>';
}

上記の JavaScript コードでは、-"#dialog-container"は $TOS 変数が 0 の場合にのみ定義されます。

<!-- See if TOS is active, if so add these divs for the overlay -->
    <?php
        echo '<div id="dialog-container">
        </div>';
    ?>

これはすべて機能しますが、何も表示されません。

何が悪いのか、何か考えがあれば教えてください、ありがとう:)

4

4 に答える 4

1

jQueryの準備が整う前にjQueryメソッドを呼び出しているようです。jQueryのdocument.ready関数内でrun()呼び出しを行う必要があります。

<script type="text/javascript">
    $(document).ready(function() {
       run();
    });
</script>
于 2013-01-17T11:41:24.003 に答える
1

代わりにこれ:

var tag = $("#dialog-container");

これを使って:

var tag = $(document).find("#dialog-container");

そしてそれを変更します:

tag.html(data).dialog({
          width: '100%',
            modal: true,
            autoOpen:true
      });

ドキュメントをチェックアウト: http://api.jqueryui.com/dialog/#option-autoOpen

を呼び出しrun();doc ready handler

于 2013-01-17T11:36:31.090 に答える
0
function showUrlInDialog(url){
      var tag = $("#dialog-container").dialog({width: '100%',modal: true,autoOpen:false });
      $.ajax({
        url: url,
        success: function(data) {
          tag.html(data)
          tag.dialog('open');
        }
      });
    }

これを試して...!!

于 2013-01-17T11:37:13.713 に答える
0

div "#dialog-container" は存在しません。簡単なテストのためにその div を html コードに入れると、機能します。

于 2013-01-17T11:42:53.347 に答える