Я использую Morris JS для отображения линейной диаграммы.
У меня есть файл JavaScript со статическими значениями
$(function() { Morris.Line({ element: 'morris-line-chart', data: [ { year: '2015', a: 20 }, { year: '2016', a: 25 }, { year: '2017', a: 40 }, ], xkey: 'year', ykeys: ['a'], labels: ['Equity Partners '] });
Я ожидал, что смогу сделать
$(function() { Morris.Line({ element: 'morris-line-chart', data: [ { year: '2015', a: <?php echo $_POST["AmericanIndian_EP"]; ?> }, { year: '2016', a: <?php echo $_POST["AmericanIndian_A"]; ?> }, { year: '2017', a: <?php echo $_POST["AmericanIndian_C"]; ?> }, ], xkey: 'year', ykeys: ['a'], labels: ['Equity Partners '] });
для получения значений PHP я использовал POST PHP после отправки формы и отображения ее в данных таблицы JavaScript. Но это вызывает ошибку на входе PHP.
Итак, в основном, я просто хотел бы узнать, как я могу ввести PHP в свой файл JavaScript?
Вы можете отправить форму с помощью javascript
$('#form').submit(function(){ $.ajax({ url: $('#form').attr('action'), type: 'POST', data : $('#form').serialize(), success: function(data){ // data here should have the new values for your chart console.log('form submitted.'); } }); return false; });
Согласно ожидаемым данным для Morris.Line
, вам нужно использовать json_encode()
для доставки всего объекта в javascript, чтобы все было автоматически экранировано для использования JS.
... element: 'morris-line-chart', data: <?php json_encode( [ ['year'=>'2015','a'=>$_POST["AmericanIndian_EP"]], ['year'=>'2016','a'=>$_POST["AmericanIndian_A"]], ['year'=>'2017','a'=>$_POST["AmericanIndian_C"]] ] ); ?>, xkey: 'year', ...