JavaScript — как передать переменную PHP в processing.js

Привет мне нужен способ передать значение PHP для processing.js, как я могу это сделать. Я знаю, что мне нужно использовать AJAX, но я не знаю, что делать, чтобы получить значение в 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;

}
?>

но когда я предупреждаюs«оно не определено, и я не знаю, как передать его в код обработки для отображения изображения на холсте. Может ли кто-нибудь меня обмануть?

0

Решение

Аякс асинхронный. Это означает, что пока выполняется вызов ajax, сценарий продолжается.

Ваш s переменная не определена до тех пор, пока не завершится вызов ajax, в success функция. Сразу после вызова ajax в скрипте — но не во времени — он еще не определен.

Чтобы получить доступ к переменным, возвращаемым вызовом ajax, вам нужно поместить свою логику в success функция.

2

Другие решения

Другой ответ правильный, но другой вариант — использовать синхронный вызов, который заблокирует вызов 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
});

Больше информации здесь: Как я могу заставить jQuery выполнять синхронный, а не асинхронный Ajax-запрос?

И в Документация JQuery.

0

По вопросам рекламы [email protected]