2016-09-09 68 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