我有一个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?
对于最佳解决方案,您有任何其他建议吗?
谢谢你们。
答案 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变量一样使用它们。