-4

Javascript「SHOW」に「$var_external」を渡したい。

ここで私は関数を呼び出します:

<?php
include("test23.php");

$call_function = test23(); 
?>

これは関数 test23.php です:

<?php

function test23() {

$var_external = 9999;       // This doesn't work

print("<a href=\"dummy\" id=\"SHOW\">Activate script</a>");

}
?>    

<script type="text/javascript">

$( function () {
  $("a#SHOW").toggle( function() {  

    var var_external =  <?php echo $var_external; ?>;

    alert(var_external);

  }, 
  function () {
    return false;
  });
});

「スクリプトをアクティブにする」をクリックすると、$var_external が Javascript に渡されます。

$var_external がPHP 関数に設定されている場合、機能しません。

$var_external をPHP 関数の外に置くと、機能します。

PHP関数内で機能しないのはなぜですか?

4

2 に答える 2

0

グローバル変数は使用しないでください。習慣化するのはよくありません。

値を引数として関数に渡す必要があります。

function test23( $var_external ){
  // do stuff to modify it
  return $var_external;
}

次に、結果を出力します。

<?php print test23($var_external); ?>

値が実際に何のためにあるのか、なぜ変更されているのかがわからないため、より良いアドバイスを与えることは困難です。

その他のヒント:

  • 変数は、機能する前に関数の外で作成する必要がありglobalます。
  • 値が常に出力されることを確認してください。空/null val が出力されると、javascript が壊れます。または、引用符を使用してから、数値または必要なものに変換します
于 2013-11-09T19:51:14.343 に答える
0

同じ問題がある場合は、'' を使用してください

var var_external =  '<?php echo $var_external; ?>';

PHPがテキストをエコーする場合はJavaスクリプトがクラッシュし、PHPがintをエコーする場合はクラッシュしないようです。

于 2013-11-09T20:56:28.360 に答える