7

私はphpの初心者です

   <?php
    getDBData(){
        //log the call
        $fetchedData = myDbCode.fetchData();
        return 
    }
  ?>
  <script type="text/javascript">
      dbData = <?php echo json_encode(getDBData()); ?>
  </script>

ログに見られるように、getDBData はページの読み込み中に一度だけ呼び出され、後でdbData = <?php echo json_encode(getDBData()); ?>このコードを使用しても呼び出しは行われgetDBData()ません。

getDBData() の呼び出しがページの読み込み時にのみ発生し、その後では発生しない理由

getDBData()JavaScriptから呼び出す方法

4

6 に答える 6

13

そのためには Ajax を使用する必要があります。つまり、関数の出力を返す php ファイルがあります。

// data.php
<?php
    function getDBData(){
        //log the call
        $fetchedData = myDbCode.fetchData();
        return $fetchedData;
    }
    echo getDBData();
?>

// html file
<script type="text/javascript">
    var getDBData = function(callback) {
        $.ajax({
            url: "data.php"
        }).done(callback);
    }
    var dbData = <?php echo json_encode(getDBData()); ?>
    getDBData(function(data) {
        dbData = data;
    })
</script>

上記のコードはjQueryを使用しています。

于 2013-09-03T12:03:10.460 に答える
1

AJAX を使用して、サーバー側の PHP 値を JavaScript 変数に取得できます。この ajax の例を読んで実装してください。

            // Launch AJAX request.
            $.ajax(
                {
                    // The link we are accessing.
                    url: jLink.attr( "href" ),

                    // The type of request.
                    type: "get",

                    // The type of data that is getting returned.
                    dataType: "html",

                    error: function(){
                        ShowStatus( "AJAX - error()" );

                        // Load the content in to the page.
                        jContent.html( "<p>Page Not Found!!</p>" );
                    },

                    beforeSend: function(){
                        ShowStatus( "AJAX - beforeSend()" );
                    },

                    complete: function(){
                        ShowStatus( "AJAX - complete()" );
                    },

                    success: function( strData ){
                        ShowStatus( "AJAX - success()" );

                        // Load the content in to the page.
                        jContent.html( strData );
                    }
                }                           
                );

            // Prevent default click.
            return( false );                    
        }
        );
于 2013-09-03T12:04:33.157 に答える
0

あなたはajaxを通してそれを行うことができます。

ここにjqueryでそれを行うためのリンクがあります: using jquery $.ajax to call a PHP function

于 2013-09-03T12:03:18.547 に答える
0

jqueryを使う

$.ajax({
            url: 'yourpage.php',
            type: 'POST',
            data:'',
            success: function(resp) {

            // put your response where you want to  

            }
        }); 
于 2013-09-03T12:03:42.467 に答える
0

JavaScript から PHP 関数を直接呼び出すことはできません。

getDBDate を独自の .php ファイルに「外部委託」して、json_encoded 文字列を出力し、このファイルを ajax で呼び出して、ページの出力を取得する必要があります。

JavaScript で AJAX リクエストを実行する最も簡単な方法は、JQuery ライブラリを使用することです: http://api.jquery.com/jQuery.ajax/

于 2013-09-03T12:03:53.280 に答える