2016-05-30 7 views
0

このupdateData関数を使用して、最初の間隔の後にphpファイルの値を取得するだけですが、ページが読み込まれた後に最初のデータを取得したいと思います間隔が始まる前に、VAR初めてAJAXでPHPからデータを取得する

var dataset=[]; 
updateData(); 

をやってみましたが、データセットがまだ更新されていないがimmidiately私は空の配列は[]

function updateData(){ 
    $.ajax({ 
      type: 'POST', 
      url: 'parser.php',   
      dataType: 'json', 
      cache: false, 
      success: function(result) { 
       dataset = result; 
      }, 
    }); 

} 
<?php 
    $datasetJSON = array(); 

    for($i=0;$i<7;$i++){ 
     $datasetJSON[] = rand(1,1000); 
    } 
    echo json_encode($datasetJSON); 
?> 

答えて

1

あなたの問題は、AJAXが同期されていないことを理解していると思います!

これは、コードが実行され続け、AJAX呼び出しが返るのを待つことを意味します。あなたはAJAX呼び出しをあなたのメインスレッドとは別に実行するスレッドとして考えることができます。

var dataset=[]; 
    updateData(); 
    console.log(dataset); // will execute immediately! 
    function updateData(){ 
     $.ajax({ 
       type: 'POST', 
       url: 'parser.php', 
       dataType: 'json', 
       cache: false, 
       success: function(result) { 
        dataset = result; 
        console.log(dataset); // now it's updated 
       }, 
     }); 
    } 

あなた同期AJAXを呼び出すことができます。

var dataset=[]; 
    updateData(); 
    console.log(dataset); // now it's updated 
    function updateData(){ 
     $.ajax({ 
       type: 'POST', 
       url: 'parser.php', 
       dataType: 'json', 
       cache: false, 
       async: false, // <-- This will sync the AJAX call (and freeze the browser) 
       success: function(result) { 
        dataset = result; 
        console.log(dataset); // now it's updated 
       }, 
     }); 
    } 

をしかし、それはAJAXの目的に反し。コールバック関数の処理方法を学ぶ必要があります。

+0

私はイニシアチブのためだけに別の呼び出しを行い、値を更新するためにAJAXを使用したいと思います。 – Higeath

+0

'async:false'はあなたが望む結果を出しますか? –

+0

これはちょっとしたことですが、今は値を即座に取得していますが、それ以降の値は同期されたajaxとまったく同じで、それ以降の値はランダムです。 – Higeath

0

だけで、このような関数を呼び出してロードされたページを検出するかどうかを取得します。これはあなたが欲しいですか?

jQuery(window).load(function() { 
    updateData(); 
}); 

が、これはあなたを助けることを願っています。

+0

varデータセットのようなドキュメント準備時間のあなたのAJAX呼び出しを追加します。 jQuery(window).load(function(){ updateData(); }); console.log(データセット); データセットがまだ空です – Higeath

0

[] =この

<script type="text/javascript"> 
jQuery(document).ready(function(){ 

     tableselect = jQuery(this).val() ; 
      var data_pro = { 
        action: 'update_record', 
        tableselect: tableselect 
        }; 

        jQuery.ajax({ 
           type: "POST", 
           dataType : 'html', 
           url: ajaxurl, 
           data: data_pro, 
            success: function(data){ 

            } 
          }); 

    }); 
</script> 
+0

私はまだそれらの値を取得していない試みました。 – Higeath

+0

あなたは私にURLを表示し、あなたがそれらから何の価値を必要としますか –

関連する問題