私はこれを1日中働いていましたが、AJAXを学んでいる間に利用可能なさまざまな方法を混乱させると思います。私は自分のウェブサイトにPythonスクリプトの結果を表示したい。私はそれを行うことができます。AJAX経由のPHP変数を他のDIVのPHP変数に渡す
問題は、ガレージドアの状態が変わった場合、スクリプトの結果がランダムに変化することです(私のガレージドアの状態です)。通常、ユーザーは現在のステータスを取得するためにページをリロードし続ける必要があります。私は5秒ごとに更新するステータスを示すDIVを持っているので、新しいステータスを表示しようとしています。
Pythonスクリプトの実行には約4秒かかります。そのため、関数として呼び出して、結果を表示したいサイトのDIVとして渡したいと思います。
可能であれば、1つのPHPファイル(index.php)。ここに私が何をしようとしているかの骨格があります。私のget_status関数は動作しますが、残りの部分は失われています。
ありがとうございます。
EDIT:コメントがコメントされたマイナーチェイクでコードが更新されました。
<html>
<body>
<?php
function get_status(){
$status = shell_exec('python /path/to/garage_door/myq-garage.py status'); //Equals either 'Open' or 'Closed'
echo $status;
}
?>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">
var java_status = <?php echo json_encode(get_status) ?>;
// I have no idea how to pass a variable from PHP thru javascript to PHP on the
// same page. Trying to pass on results of get_status function every 5 seconds.
setInterval(function(){
$.ajax({
url: "index.php"
type: "POST"
dataType: "json"
data: ({status: java_status}),
success: function(data){
$("#status_div").html(data);
}
})
}, 5000);
</script>
<div id="status_div">
<?php
$new_status = json_decode(data);
?>
// I have no idea how to get that status variable here.
The Garage Door Status is: <?php
echo $new_status;
?>
</div>
</body>
</html>
を必要とする[あなたは、ブラウザの開発ツールでAJAXリクエスト/レスポンスを見たことがありますか?プロジェクトにjQueryライブラリを含めましたか?エラーが報告されていますか? ] Webサーバーでこれを実行していますか?](http://jayblanchard.net/basics_of_jquery_ajax.html) –
'#status_div'にはコードはまったく必要ありません。あなたの成功関数で 'data'を解析し、必要な部分を'#status_div'に置きます。 –
PythonコードがJSONを返していますか? –