2016-09-09 10 views
0

こんにちは私はprocessing.jsにPHPの値を渡す方法が必要です。私はAJAXを使用する必要があることを知っていますが、processing.jsの価値を引き出すために何をすべきか分かりません。私はそのPHP変数をprocessing.jsに渡す方法

<script type="text/javascript"> 
function go(){ 
     var s; 
    var variable = 5; 
    $.ajax({ 
     method:"POST", 
     tupe:"POST", 
     url: "take.php", 
     data:({val:variable}), 
     success: function(data){ 
      //$('#msg').html(data); 
          var b = data; 
          s=b; 
     } 

    }); 
      alert (s); 
    } 
</script> 

ような何かをしようと試みてきましたし、私のPHPは次のとおりです。

<?php 
if($_POST){ 
    $img = "index.jpg" ; 
    echo $img; 

} 
?> 

しかし、私は警告したときに「」それは未定義であり、私はに処理コードにそれを渡す方法を知りませんキャンバスに画像を表示する。誰かが私を助けてくれる?

+0

もっと良い方法は、PHPからJSON形式で出力することです。 – Devon

+1

アラートは応答が受信される前に実行されています。レスポンスで返される値を使用する場合は、successコールバックに入れる必要があります。 –

答えて

2

Ajaxは非同期です。つまり、ajax呼び出しが実行されている間は、スクリプトは続行されます。

s変数は、ajax呼び出しの終了後、success関数で定義されていません。スクリプト内のajax呼び出しの直後(ただし時間内ではありません)はまだ定義されていません。

ajax呼び出しによって返される変数にアクセスするには、ロジックをsuccess関数に入れる必要があります。

0

もう1つの答えは正しいですが、同期コールを使用して、データが返されるまでajax()の呼び出しをブロックします。これはあなたがそれが働いていると思われるように見えます。

ちょうどこのようajax()呼び出し、にasync:falseパラメータを渡し、同期呼び出しを行うために:ここ

$.ajax({ 
     method:"POST", 
     tupe:"POST", 
     url: "take.php", 
     data:({val:variable}), 
     success: function(data){ 
      //$('#msg').html(data); 
          var b = data; 
          s=b; 
     }, 
     async: false 
    }); 

さらに詳しい情報:How can I get jQuery to perform a synchronous, rather than asynchronous, Ajax request?

そしてJQuery documentationインチ

関連する問題