0

わかりましたので、PHP内のjQueryから関数をエコーし​​ようとしています。

少し検索していましたが、正確な答えは見つかりませんでしたが、ajaxを使用する必要があることがわかりましたか?

私はajaxに慣れていないので、これを見つけました。

<?php 
    $status = "<script>
                 $.ajax({ 
                    url: '/',
                    data: {action: 'test'},
                    type: 'post',
                    success: function(output) {
                       notifyBox();
                    }
                 });
               </script>";
?>

ページのどこかにこの部分もあります:

<?php if(isset($status)) { echo $status; } ?>

関数を実行するためにそのすべてが必要かどうかはよくわかりません。ただし、jQuery を Web サイトの先頭に配置した場合にのみ機能します。

私は通常、すべてのスクリプトを上</body>(終了タグ) に配置しますが、これらすべてのスクリプトを頭に配置する必要がある場合は気になります

多くのページがあるため、すべてのスクリプトを分離することはできませんが、現在気になっている 1 つのページが原因です。

jQueryはページの最後にロードされるため、未定義の「$」のコンソールエラーを取得せずにその関数を呼び出す方法を教えてください。

前もって感謝します。

4

4 に答える 4

2

jQuery を含むタグのにPHPifステートメントを配置する限り、これは機能するはずです。<script>

于 2012-11-30T20:23:03.120 に答える
1

この問題は、その変数がエコーされたときに jQuery がロードされていないことが原因で発生しています。Javascript が関数呼び出しを検出すると、その場ですぐに実行します。これを防ぐには、jQuery がロードされた後に変数をエコーする必要があります。

例:

<script type="text/javascript" src="path/to/jquery.js"></script>
<?php
    echo $script;
?>

または、後で呼び出される関数に AJAX 呼び出しを入れることができます。

<?php
    $script = '<script type="text/javascript">function myFunc() {
        //Call AJAX here
    }
    </script>';
    echo $script;
?>

その後、関数を呼び出すことができます。myFunc();

于 2012-11-30T20:24:17.817 に答える
0

jquery がロードされていることを確認します。これはうまくいくはずです:

$status = "<script type='text/javascript'>
                $(function(){
                   $.ajax({ 
                    url: '/',
                    data: {action: 'test'},
                    type: 'post',
                    success: function(output) {
                       notifyBox();
                    }
                 });
               });
               </script>";
于 2012-11-30T20:24:58.580 に答える
0

$(document).ready() も jquery 関数なので、window.onload で試してみてください。

于 2012-11-30T20:27:49.297 に答える