Я пытаюсь показать данные, полученные маленьким скриптом python3, когда кнопка нажимается на веб-сайте без обновления.Для этого я выбрал PHP для выполнения скрипта python3 и AJAX для его показа.Моя проблема заключается в том, что когда дело доходит до отображения данных.
Сценарий python для создания json:
!/usr/bin/env python3
import json
def receive_json():
message = {'num1':1, 'num2':2, 'num3':3}
print(json.dumps(message))
receive_json()
Код AJAX на веб-сайте для отображения полученного сообщения:
<div class="row">
<table class ="center">
<tr>
<td id="plot2">num2</td>
<td id="plot3">num3</td>
</tr>
</table>
<div id = "actualDataButton">
<button type="button" onclick="callPHPscript()">Get actual data</button>
</div>
<script type="text/javascript">
function callPHPscript(){
$.ajax({
url:'getData.php', //the page containing php script
type: 'POST',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success:function(result){
$("#plot2").html(result[1]);
$("#plot3").html(result[2]);
}
});
}
</script>
</div>
PHP-скрипт с именем getData.php:
<?php
$command = escapeshellcmd('/Users/Borjis/Sites/receive_json.py');
$output = shell_exec($command); //JSON received
$json = json_decode($output);
$array = array($json->num1,$json->num2,$json->num3);
echo json_encode($array);
?>
Когда я запускаю это, таблица ничего не показывает, она не нулевая, содержимое пустое.Но если я изменю массив $ в PHP с полученными переменными JSON на массив чисел, например:
$ array = array (1,2,3);В таблице указаны правильные значения 2 и 3 в правильном месте.
Я пытался отправить полученный в PHP JSON в переменную $ output без изменения, чтобы utf8_encode получил JSON ...
Если я поставлю:
$ array = array (1,2, $ json-> num3);Он показывает только значение 2
. Когда я запускаю PHP-скрипт в CLI, он всегда показывает значения из JSON или помещая числа в массив.Проблема в том, что когда дело доходит до декодирования его в AJAX.
Я хочу показывать только значения JSON на веб-сайте.