Hallo, ich brauche eine Möglichkeit, PHP-Wert an processing.js zu übergeben, wie kann ich das tun. Ich weiß, dass ich AJAX verwenden muss, aber ich weiß nicht, was ich tun soll, um Wert in processing.js zu erhalten. Ich habe so etwas versucht
<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>
und mein PHP ist:
<?php
if($_POST){
$img = "index.jpg" ;
echo $img;
}
?>
aber wenn ich alarmiere "s"es ist undefiniert und ich weiß nicht, wie ich es an den Verarbeitungscode weitergeben soll, um das Bild auf einer Leinwand darzustellen. Kann mir jemand helfen?
Antworten:
2 für die Antwort № 1Ajax ist asynchron. Das bedeutet, dass das Skript fortgesetzt wird, während der Ajax-Aufruf ausgeführt wird.
Ihre s
Die Variable wird erst definiert, nachdem der Ajax-Aufruf beendet wurde success
Funktion. Direkt nach dem Ajax-Aufruf im Skript - aber nicht rechtzeitig - ist es noch nicht definiert.
Um auf die vom Ajax-Aufruf zurückgegebenen Variablen zuzugreifen, müssen Sie Ihre Logik in das Feld einfügen success
Funktion.
0 für die Antwort № 2
Die andere Antwort ist richtig, aber eine andere Option ist die Verwendung von a synchron Anruf, wodurch der Anruf an blockiert wird ajax()
bis die Daten zurückkehren. So sieht es aus, als hätten Sie angenommen, dass es funktioniert hat.
Um einen synchronen Anruf zu tätigen, übergeben Sie einfach die async:false
Parameter in die ajax()
anrufen wie folgt:
$.ajax({
method:"POST",
tupe:"POST",
url: "take.php",
data:({val:variable}),
success: function(data){
//$("#msg").html(data);
var b = data;
s=b;
},
async: false
});
Mehr Infos hier: Wie kann ich jQuery dazu bringen, eine synchrone statt eine asynchrone Ajax-Anforderung auszuführen?
Und in der JQuery-Dokumentation.