Привет, У меня есть хорошее опыт работы с javascript, и я застрял в следующей ситуации.
Я разрабатываю страницу PHP для отображения некоторых значений в графе. Я использую morris.js.
Теперь, как morris.js использует массив в следующем формате для отображения в виде графика:
Передать переменные php в morris.js
// AREA CHART
var area = new Morris.Area({
element: 'revenue-chart',
resize: true,
data: [
{y: '2011', purchase: 500, sale: 1000, profit: 500},
{y: '2012', purchase: 600, sale: 1100, profit: 500},
{y: '2013', purchase: 500, sale: 1050, profit: 550}
],
xkey: 'y',
ykeys: ['profit', 'purchase', 'sale'],
labels: ['Profit', 'Purchase', 'Sale'],
lineColors: ['#a0d0e0', '#3c8dbc', '#ac5bc3'],
hideHover: 'auto'
});
Но у меня есть эти значения в переменной PHP, как:
$year1 = '2011';
$sale1 = '1000';
$purchase1 = '500';
$profit1 = '500';
$year2 = '2012';
$sale2 = '1200';
$purchase2 = '600';
$profit2 = '500';
$year3 = '2013';
$sale3 = '1050';
$purchase3 = '500';
$profit3 = '550';
Как я могу передать те php до js. Я попробовал json_encode(), но это не помогло мне.
ОБНОВЛЕНИЕ: Отображение обновленного кода с ответом Люка Cordingley, все еще имеет проблемы с ним.
<script type="text/javascript">
window.MyProjectNamespace.phpVars = <?
$phpVars = array('year' => '2011', 'purchase' => '1000', 'sale' => '600', 'profit' => '400');
echo json_encode($phpVars);
?>
</script>
<script type="text/javascript">
$(function() {
// AREA CHART
var area = new Morris.Area({
element: 'revenue-chart',
resize: true,
data: [
{y: window.MyProjectNamespace.phpVars.year, purchase: "500", sale: "1000", profit: "500"},
{y: "2012", purchase: "600", sale: "1100", profit: "500"},
{y: "2013", purchase: "500", sale: "1050", profit: "550"}
],
xkey: 'y',
ykeys: ['profit', 'purchase', 'sale'],
labels: ['Profit', 'Purchase', 'Sale'],
lineColors: ['#a0d0e0', '#3c8dbc', '#000000'],
hideHover: 'auto'
});
});
и может пожалуйста xplain где 'console.log (window.MyProjectNamespace.phpVars),' должен быть вставлен. Я попытался заменить 'data: [......]' в приведенном выше коде 'data: [console.log (window.MyProjectNamespace.phpVars);]', но не работал таким образом. – sohal07
console.log - это просто функция отладки, которая показывает вам то, что содержится в определенной переменной. Например, если у вас есть 'json_encode (array ('one' => 1, 'two' => 2));' в PHP, который создаст стандартный объект JavaScript, например '{'one': 1, 'two': 2 } '. Поэтому, если вы хотите поместить все ваши PHP-переменные в JavaScript, используя мой пример, вы можете получить доступ к значению переменной 'one' as: 'window.MyProjectNamespace.phpVars.one'. Значение этой переменной будет «1». Вы можете передать необходимые переменные методу Morris.Area, как только они появятся в JavaScript, как показано: –
Привет, Лука, я только что обновил свой вопрос с применением вашего ответа, все еще есть некоторые проблемы с ним. Pls посмотрел. – sohal07