2016-09-09 150 views
0

嗨,我需要一種方法將PHP值傳遞給processing.js,我該如何做到這一點。我知道我必須使用AJAX,但我不知道如何處理processing.js中的值。我tryed類似的東西如何將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

收到響應之前您的警報正在運行。如果您想使用響應中返回的值,則需要將其放入成功回調中。 –

回答

2

Ajax是異步的。這意味着,當ajax調用執行時,腳本繼續。

您的s變量只有在ajax調用完成之後纔會定義在success函數中。在腳本的ajax調用之後 - 但不及時 - 它還沒有定義。

要訪問ajax調用返回的變量,您需要將邏輯放在success函數中。

0

其他答案是正確的,但另一種選擇是使用同步調用,該調用將阻止調用ajax(),直到數據返回。這是它看起來像你認爲它的工作。

要進行同步調用,只要傳遞async:false參數爲ajax()調用,就像這樣:

$.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