如何在jQuery脚本中正确引入PHP变量配置valMap数组?
如何将PHP变量正确传入jQuery数组?
嘿,我来帮你搞定这个问题!你目前的写法存在两个关键问题:一是把两个PHP变量直接拼接成了单个字符串,二是数组语法有误(多了个多余的分号),导致JS无法识别出两个独立的数值元素。
错误写法的问题分析
你之前的代码:
var valMap = ['<?php echo($n); echo($n2);?>';];
这里echo($n); echo($n2)会把两个数字直接拼接在一起(比如$n=25、$n2=50的话,就变成'2550'),而且数组里的分号属于语法错误,JS会直接抛出异常。
正确的两种写法,推荐第二种更健壮的方案:
方式一:直接输出独立数组元素
因为你的变量是数字类型,不需要加引号,直接在JS数组里分别输出两个PHP变量即可:
var valMap = [<?php echo $n; ?>, <?php echo $n2; ?>];
方式二:用json_encode(推荐)
这种方法通用性更强,不管你的变量是数字、字符串还是其他类型,都能自动转换成合法的JS语法,彻底避免手动拼接可能出现的错误。
步骤如下:
- 先在PHP里把需要传递的值整理成一个数组:
<?php $n = $json['health']; $n2 = $json2['health']; // 后续需要添加更多值时,直接往这个数组里加就行 $php_value_array = [$n, $n2]; ?>
- 然后在JS里用
json_encode把PHP数组转换成JS数组:
<script> $(function() { var valMap = <?php echo json_encode($php_value_array); ?>; $("#slider-range").slider({ min: 1, max: valMap.length - 1, value: 0, slide: function(event, ui) { $("#amount").val(valMap[ui.value]); } }); // 初始化显示滑块对应的默认值 $("#amount").val(valMap[0]); }) </script>
额外提示
别忘了初始化#amount的默认值,你之前注释掉了这部分代码,现在可以按上面的写法恢复,这样页面加载时就能直接显示滑块对应的初始数值啦。
内容的提问来源于stack exchange,提问作者Kelster
相关产品推荐
相关产品推荐

