1

PHP で何らかの条件が満たされたときに、ポップアップ アラート ボックスを表示したいと考えています。何かのようなもの:

  echo "<script type="text/javascript"> alert('bleh'); </script>";

カスタムjqueryアラートボックスを使用することを除いて。これは可能ですか??

私は次のようなことを試しました:

  echo "<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
   <link rel="stylesheet" href="/resources/demos/style.css" />
   <script>
   $(function() {
   $( "#dialog-message" ).dialog({
   modal: true,
   buttons: {
    Ok: function() {
      $( this ).dialog( "close" );
    }
  }
  });
});
</script>"; 

しかし、それは私に奇妙な効果をもたらします。ポップアップしません。

ご関心をお寄せいただきありがとうございます。

4

6 に答える 6

3
echo <<<EOD
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" />
    <script>
       $("#dialog-message").dialog({
           modal: true,
           buttons: {
               Ok: function() {
                  $( this ).dialog( "close" );
               }
           }
       });
    </script>
EOD;
于 2013-05-13T22:46:01.143 に答える
0

このようなことを試してください。$bleh表示するメッセージを含む PHP 変数はどこにありますか。

<script type="text/javascript">
$(document).ready(function(){
   var dlg = $('<div>').text(<?php echo $bleh ?>);
   $(body).append(dlg);
   dlg.dialog(
      modal: true
   );
});
<script>
于 2013-05-13T22:46:28.803 に答える
0

確実なこと。あなたはおそらくこれについて何かしたい:

  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
   <link rel="stylesheet" href="/resources/demos/style.css" />
   //check for PHP condition. Script will only be output on condition pass.
   <?php if(condition == true){ ?>
   <script>
   $(function() {
    $("#dialog-message").dialog({
     modal: true,
     buttons: {
     Ok: function() {
        $(this).dialog("close");
      }
    }
   });
 });
 </script>
 <?php } ?>

基本的に、スクリプトを外部の .js ファイルではなく .php ファイルから出力している限り、実際にスクリプトを「エコー」する必要はありません。条件が満たされる限り、スクリプトは表示されます。

于 2013-05-13T23:17:38.103 に答える
0

前に述べたように、文字をエスケープするか、このように使用する必要があるため、ここで文字をエスケープする必要はありません

<?php if (condition == true) : ?>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />
  <script>
   $(function() {
   $( "#dialog-message" ).dialog({
   modal: true,
   buttons: {
    Ok: function() {
      $( this ).dialog( "close" );
    }
  }
  });
 });
 </script>
<?php endif; ?>
于 2013-05-13T22:50:24.267 に答える
0

PHP は、rel="stylesheet" のような行の " (二重引用符) が php コードであることを期待しています。' (一重引用符) を使用するか、add_slashes のようなエコーの周りの関数でそれらをエスケープする必要があります。これを回避するには、私は通常、echo コンテンツを一重引用符で囲むので、すべての二重引用符は気にしません。

echo 'ここに「引用された」ものすべて';

于 2013-05-13T22:46:49.580 に答える
0

はい、可能です..

echo "<script type=\"text/javascript\">alert('bleh');</script>";

しかし、関数全体をエコーで記述するのが良い方法かどうかはわかりません。代わりに、ページのどこかにHTMLで関数を定義し、上記のように関数名をエコーし​​ます..

于 2013-05-13T22:49:13.220 に答える