在JavaScript文件中使用PHP的$ _POST值

时间:2017-10-13 15:59:12

标签: javascript php jquery html

我正在使用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值我在提交表单后使用PHP的POST,并将其显示在JavaScript表数据上。但是,它会在我的PHP输入上引发错误。

基本上,我想知道如何在我的JavaScript文件中输入PHP?

2 个答案:

答案 0 :(得分:0)

您可以使用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;
});

答案 1 :(得分:0)

根据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',
...