Я искал в течение нескольких часов и не может поставить эту работу ...Получить эхо PHP в JavaScript (отдельные файлы)
Это мой первый сайт, у меня есть датчик Google, что нужно спросить базу данных для значения, которое оно должно положить на датчик. Я знаю, как спросить базу данных и как обновить калибр, проблема в том, как передать переменную echo из файла php в файл javascript. (Код php должен находиться в отдельном файле или иначе указатели google не будут отображаться).
Вы можете проверить актуальную версию сайта here (На данный момент датчики статические).
PHP код:
<?php
$DB_NAME = 'TSB';
$DB_HOST = 'db.tecnico.ulisboa.pt';
$DB_USER = 'xxxxxxxxx';
$DB_PASS = 'xxxxxxxxx';
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query('USE xxxxxxxxxxx;');
$result = $mysqli->query('SELECT SOC FROM TSB ORDER By time DESC LIMIT 1;');
$row = $result->fetch_array();
$soc = $row['SOC'];
echo $soc;
?>
Выходной эхо является INT или, по крайней мере, пришел в качестве одного из базы данных.
То, что я пытаюсь в яваскрипта файла:
function SOC() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['SOC', 0]
]);
var options = {
width: 250, height: 250,
redFrom: 0, redTo: 10,
yellowFrom: 10, yellowTo: 25,
minorTicks: 5,
majorTicks: ['0','25','50','75','100']
};
var formatter = new google.visualization.NumberFormat({
suffix: '%',
fractionDigits: 0
});
formatter.format(data, 1);
var chart = new google.visualization.Gauge(document.getElementById('SOC'));
chart.draw(data, options);
setInterval(function() {
var socPHP;
$.ajax({
url: 'soc.php',
type: 'get',
dataType:'text',
// I don't know how to properly put the $soc from php in a javascript variable
});
data.setValue(0, 1, 100); // 100 should be replaced by the value
//that came from the php file and the variable should be an INT
chart.draw(data, options);
}, 3000);
}
UPDATE После Тины Предложения:
<?php
$DB_NAME = 'TSB';
$DB_HOST = 'db.tecnico.ulisboa.pt';
$DB_USER = 'xxxxx';
$DB_PASS = 'xxxxx';
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query('USE xxxxxx;');
$result = $mysqli->query('SELECT SOC FROM TSB ORDER By time DESC LIMIT 1;');
$row = $result->fetch_array();
$soc = $row['SOC'];
?>;
function SOC() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['SOC', 0]
]);
var options = {
width: 250, height: 250,
redFrom: 0, redTo: 10,
yellowFrom: 10, yellowTo: 25,
minorTicks: 5,
majorTicks: ['0','25','50','75','100']
};
var formatter = new google.visualization.NumberFormat({
suffix: '%',
fractionDigits: 0
});
formatter.format(data, 1);
var chart = new google.visualization.Gauge(document.getElementById('SOC'));
chart.draw(data, options);
setInterval(function() {
data.setValue(0, 1, <?php echo $soc; ?>);
chart.draw(data, options);
}, 3000);
}
Вы не можете использовать PHP в файле, в который вы хотите изменить переменную PHP? Если это так, то вы захотите использовать Javascript AJAX. – bugfroggy
Я пробовал с AJAX, но, возможно, я не сделал это правильно, можете ли вы отправить ответ с примером кода? –
@ bugfroggy не могли бы вы предоставить мне AJAX? –