如何从php传递不同的变量到jQuery函数

时间:2016-12-13 15:19:23

标签: javascript php jquery

我有一个jQuery函数来打印图表(jqPlot框架)。 我想用不同的选项打印几个图表。所以我需要多次调用此函数并使用不同的值。

我有一个像这样丑陋的解决方案:

//----- index.php:

// chart 1
$values = "[1,2,3]";
$id_chart = "chart1";
$options = "{...}";
include 'chart.php';

// chart 2
$values = "[8,2,5]";
$id_chart = "chart2";
$options = "{...}";
include 'chart.php';


//---- chart.php

 <script>
 $(function () { 
     $.jqplot(<?php echo $id_chart;?>, <?php echo $values;?>, <?php echo $options;?>);
 });
</script>

我尝试了另一个解决方案 - 使用变量调用javascript函数并在JS函数中调用jQuery函数。

//---- index.php:

<script>
function printChart(opt1,opt2,opt3){
    $(function () { 
       $.jqplot(opt1, opt2, opt3);
    });
}
</script>

<?php
// chart 1
    $values = "[1,2,3]";
    $id_chart = "chart1";
    $options = "{...}";

    echo "<script>
    printChart(\"$id_chart\",\"$values\",\"$otpions\");
    </script>";

// chart 2
    $values = "[8,2,5]";
    $id_chart = "chart2";
    $options = "{...}";

    echo "<script>
    printChart(\"$id_chart\",\"$values\",\"$otpions\");
    </script>";
?>

但是当然,jQuery无法看到&#39;来自JS的变量。是否可以将变量从JS传递给jQuery?

对于最佳解决方案,您有任何其他建议吗?

谢谢你们。

2 个答案:

答案 0 :(得分:1)

您需要了解的是PHP是服务器端语言,JavaScript是客户端语言。 PHP将完全执行,生成一个HTML页面(包含JavaScript),然后将其发送到客户端的浏览器。浏览器呈现HTML并执行JavaScript。因此,您需要做的是将JavaScript的信息打印到页面。这应该足够了:

<?php // your PHP to generate the values into an array
    $charts = [
        [
            'values' => [1,2,3]
            'id_chart' => 'chart1',
            'options' => '{...}'
        ],
        [
            'values' => [4,5,6]
            'id_chart' => 'chart2',
            'options' => '{...}'
        ]
    ];
?>
<script>
    var charts = JSON.parse(<?= json_encode($charts) ?>);
    $.each(charts, function () {
        $.jqplot(this.id_chart, this.values, this.options)
    });
</script>

答案 1 :(得分:0)

  

是否可以将变量从JS传递给jQuery?

jQuery是一个javascript库 这意味着jQuery变量是javascript变量 这意味着您可以像使用任何其他javascript变量一样使用它们。